能力值:
( LV9,RANK:350 )
|
-
-
2 楼
3<<30 = 0xc000_0000
~0xc000_0000 +1 = 1,073,741,824
所以 C000_0000 = - 1,073,741,824
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
决定有符号数和无符号数靠指令
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
int 默認是 signed int, 所以int a=3這個a佔用了32bit.
現在你要把一個32bit的數 左移30bit 得到一個62bit的數 存到原來的int a(只有32bit)當中
當然會出錯
如果是unsigned int a=3 就不會有這個問題了,因為unsigned 可以看成沒有符號位,也就是實際上存儲這個“3”只用了2bit, 左移30bit 得到一個32bit的無符號數,還可以放回原來的int a當中
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
嗯,知道了,谢谢!是我的一位后数据影响了符号位,运算值超过了2的31次方减-1.
|
|
|