安靜的轉換有多安靜?

2021-07-03 22:24:56 字數 500 閱讀 5057

#include

int main()

else

return 0;}

在c語言中要特別注意型別的隱式轉換,如上**,a為int型別,b為unsigned int,根據表示式的型別轉換原則,a < b中,先將a轉換為unsigned int型別。因為計算機儲存數值採用二進位制補碼形式,架設a為乙個4位的有符號整數,那麼其二進位制補碼為1111,轉換為unsigned int型別,a的十進位制為15。同理此時a的值為4294967295(這和-1差得可是千山萬水!),顯然a > b。所以執行else,在printf("%u %d\n", a - b, a - b);中,a - b的計算過程的型別轉換和上文提到的a < b是一致的,但是因為佔位符%d和 %u的存在,輸出的結果不一致,前者為4294967285,後者為我們想要的正確結果-11,為什麼會這樣呢?本來按照轉換規則,a -b的計算結果應該為4294967285(unsigned int型別),但是%d讓結果轉換為int型別,那麼就是-11,也就是我們得到的正確值。

安靜的型別轉換

sizeof i 等於4,i等於 1,照理來說控制台應該會列印jj,可是實際上 jj他他媽的不見了!這和c的隱式轉換有關。先解釋乙個術語integer promotion 在乙個算術表示式中,編譯器總要把表示式的運算元統一成同一種型別才能做處理,如果不同,就要進行型別轉換。型別轉換過程中,遇到cha...

安靜的思考

做好一件事的方法有千百種。但是自己做到最好的方法只有一種,就是在當前情況下我能想到的那種。所以不要糾結迷茫,想好了就去做,如果錯了,下次再改進。很難保證每做一件什麼事都恰好做到最好。忘掉過去的成績,也忘掉過去的失敗。我很明白現在應該怎麼做。過去的成功不會有多大幫助,過去的失敗也不能說明什麼。實事求是...

手記 「安靜的和熱鬧的」

後怕,我可一定要做好乙個女孩子 4 四大之一的 普華今天在開招聘會,據說全校超半數的人都去了,游標樓前的自行車的陣列從來沒這麼龐大過!超轟動!我一同學發牢騷 發信人 highestvicky 水源首長 長征70周年 愛於都 信區 job 標 題 真搞不懂 四大 的虛名是怎麼弄出來的 發信站 飲水思源...