C語言乙個運算數為有符號數,另乙個為無符號數的轉換?

時間 2021-06-01 22:09:52

1樓:朱涵俊

比較跟運算是不一樣的

x>y不代表x-y>0

運算會溢位,但是比較永遠不會,負數永遠小於正數,無論是int,long,char,float,double。

比如-1的char是0xff,還是小於1的int轉換的時候,會公升級到2邊最大字長,如char,int公升級到int,char,long公升級到long。公升級的時候,無符合擴充套件為無符合,有符合擴充套件為有符號。

-1<1ul,左邊-1變成-1l,右邊還是1,有沒有符合只在擴充套件的時候有意義,如-1是擴充套件成0xffffffffffffffff,還是0x00000000ffffffff,擴充套件之後有沒有符合都是一樣操作的,只不過條件跳轉指令不同而已,有符合判斷跟無符號判斷跳轉的指令不同,如jg,jb,jn,ja。

2樓:暮無井見鈴

看這裡-1L < 1U 的隱式轉換取決於 long 是否長於 int 。

若 long 長於 int ,則兩者都被轉換成 long ,比較結果為 1 ;否則都被轉換成 unsigned long ,比較結果為 0 。

c語言的乙個疑問?

最佳答案就在C語言的標準裡,C99標準裡定義了6種statement 語句 for語句屬於 iteration statementif語句屬於 selection statement所謂花括號 屬於compound statement而帶分號 的語句屬於expression statement這裡需...

請問乙個c語言的問題?

土地測量員 反對那些說看IEEE 754浮點數標準的 暫且不談c標準裡浮點數表示方法是implementation defined 即使你知道了IEEE754浮點標準,也不能解釋輸出的結果。因為用 d輸出浮點數是未定義行為。同理,也反對樓上通過看彙編解釋輸出結果的方法,因為這解釋只在特定實現下有效。...

如何用C語言畫乙個蘑菇?

冷月i include include int main printf printf n printf printf n printf printf n printf printf n printf printf n printf printf n printf return 0 小時候金字塔就是這...