這個問題可能是很基本的,但只有在使用Google的天,在C.符號int範圍混亂
符號整數的我應有基本的瞭解其實有些人說有符號整數的範圍有我在這裏發佈
- -32767〜32767和其他人說,它具有範圍
- -32768至32767
讓我們INT A = 5(簽字/讓我們只考慮1個字節)
* a = 5的第一個表示形式表示爲00000101爲正數,並且a = -5表示爲10000101(因此範圍-32767至32767表示對齊) (此處的msb /符號位爲1/0該數字將是正/負,並且其餘的(幅度位)不變)
* a = 5的第二表示被表示爲00000101作爲正數並且a = -5被表示爲11111011 (msb是視爲-128,其餘的位被操縱以獲得-5)(因此範圍-32768到32767對齊)
所以我混淆了這兩個東西。我的疑問是什麼,是在C符號整數的實際範圍,1),2)
您已經回答了您的問題。你在問什麼?也許你想搜索「有符號整數的表示」。還要注意這兩個假設實際上並不是完整的事實。 – Olaf
C中的int沒有固定的指定大小。只有最小值被定義。在2的補碼中,一個n比特類型的範圍從'-2 ^(n-1)到'2 ^(n-1)-1' –
它依賴於底層平臺,如果它使用[補碼] ://en.wikipedia.org/wiki/Ones'_complement)或[two's complement](https://en.wikipedia.org/wiki/Two's_complement)(二進制補碼是常用補碼)。至於位的大小,它也取決於,而這些天'int'通常是32位。 –