找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2761|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

沒搞懂這兩句代碼結(jié)果為啥不一樣

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:844772 發(fā)表于 2021-1-29 11:40 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
Time_h=(i/16)*10+i%16;
Time_h=(i>>4)*10+i&0x0f;
前一句就可以,后一句十位不對,但把i&0x0f放前邊就行了,難到時(shí)編譯器的問題?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:752974 發(fā)表于 2021-1-29 12:49 | 只看該作者
拋開物理意義,單看數(shù)值,這兩條語句功能等同。
回復(fù)

使用道具 舉報(bào)

板凳
ID:824490 發(fā)表于 2021-1-29 13:21 | 只看該作者
從左到右:i>>4之后,i的值變了。到了i&0x0f,這時(shí)的i已不 原來的i,
而前一句i至始至終沒改過
回復(fù)

使用道具 舉報(bào)

地板
ID:844772 發(fā)表于 2021-1-29 13:22 | 只看該作者
本來習(xí)慣用第一種寫法,昨天腦抽寫了第二種的,顯示的就總出錯(cuò),剛剛突然琢磨出來,Keil居然是先加后與。
回復(fù)

使用道具 舉報(bào)

5#
ID:824490 發(fā)表于 2021-1-29 13:27 | 只看該作者
glinfei 發(fā)表于 2021-1-29 13:22
本來習(xí)慣用第一種寫法,昨天腦抽寫了第二種的,顯示的就總出錯(cuò),剛剛突然琢磨出來,Keil居然是先加后與。

Time_h=(i>>4)*10+(i&0x0f);試試
回復(fù)

使用道具 舉報(bào)

6#
ID:392485 發(fā)表于 2021-1-29 13:46 | 只看該作者
C語言中+ - 的運(yùn)算優(yōu)先級要高于&(位與),&(取地址)運(yùn)算要高于+ - 運(yùn)算。
回復(fù)

使用道具 舉報(bào)

7#
ID:213173 發(fā)表于 2021-1-29 14:00 | 只看該作者
優(yōu)先級和結(jié)合性
C語言中,運(yùn)算符的運(yùn)算優(yōu)先級共分為15級。1級最高,15級最低。在表達(dá)式中,優(yōu)先級較高的先于優(yōu)先級較低的進(jìn)行運(yùn)算。 而在一個(gè)運(yùn)算量兩側(cè)的運(yùn)算符優(yōu)先級相同時(shí), 則按運(yùn)算符的結(jié)合性所規(guī)定的結(jié)合方向處理。 C語言中各運(yùn)算符的結(jié)合性分為兩種,即左結(jié)合性(自左至右)和右結(jié)合性(自右至左)。例如算術(shù)運(yùn)算符的結(jié)合性是自左至右,即先左后右。如有表達(dá)式x-y+z則y應(yīng)先與“-”號結(jié)合, 執(zhí)行x-y運(yùn)算,然后再執(zhí)行+z的運(yùn)算。這種自左至右的結(jié)合方向就稱為“左結(jié)合性”。而自右至左的結(jié)合方向稱為“右結(jié)合性”。 最典型的右結(jié)合性運(yùn)算符是賦值運(yùn)算符。如x=y=z,由于“=”的右結(jié)合性,應(yīng)先執(zhí)行y=z再執(zhí)行x=(y=z)運(yùn)算。 C語言運(yùn)算符中有不少為右結(jié)合性,應(yīng)注意區(qū)別,以避免理解錯(cuò)誤。
回復(fù)

使用道具 舉報(bào)

8#
ID:844772 發(fā)表于 2021-1-29 15:00 | 只看該作者

試過了,就是忘記優(yōu)先順序了,還以為發(fā)現(xiàn)編譯器的bug呢
回復(fù)

使用道具 舉報(bào)

9#
ID:654028 發(fā)表于 2021-1-29 16:23 | 只看該作者
我從來不記優(yōu)先級,都是用括號
回復(fù)

使用道具 舉報(bào)

10#
ID:712493 發(fā)表于 2021-1-29 19:58 | 只看該作者
名字不是重點(diǎn) 發(fā)表于 2021-1-29 13:21
從左到右:i>>4之后,i的值變了。到了i&0x0f,這時(shí)的i已不 原來的i,
而前一句i至始至終沒改過

對的,是這樣!
回復(fù)

使用道具 舉報(bào)

11#
ID:130230 發(fā)表于 2023-2-22 11:23 | 只看該作者
運(yùn)算符結(jié)合的問題,基礎(chǔ)不扎實(shí)。去看看C語言基礎(chǔ)教程。
回復(fù)

使用道具 舉報(bào)

12#
ID:879348 發(fā)表于 2023-2-22 11:44 | 只看該作者
寫程序要多加括號,不要想當(dāng)然
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表