int最大多少位?
int最大值是int的最大值是2147483647。
1、16位編譯器說明:
int占16位。內存2字節。最大值:32767
2、32位和64位編譯器:
int占32位。內存4字節。最大值:21474836473。
在32/64位系統中都是32位,范圍為-2147483648~+2147483647。
決定int最大值的主要原因,根據編譯器類型不同而變化。所以某些編寫的程序,不能成功的在電腦中運行,多半與編譯器有關系,可能并不是程序的原因。
一般程序的表達方式,最高位為符號位,位數為n位時,則最大值為2^(n-1)即2的n-1次冪。關于算法的問題,自然也要使用我們所學習的數學知識。
C/C++編程語言中,int表示整型變量,是一種數據類型,用于定義一個整型變量,在不同編譯環境有不同的大小,不同編譯運行環境大小不同。
在計算機里,對數字編碼有3種方式:原碼、補碼、反碼。原碼其實就是10進制數直接轉2進制數的結果。比如:十進制的18,在二進制里是10010。
那這里的10010就是原碼。我們可以sizeof一下我們自己的電腦上int型占幾個字節。我的是4個字節,也就是說只有32個位。如果一個十進制數轉位二進制數位數大于32,就溢出,其實也就是存不下了。
存數不僅僅有正數還有負數,在計算機里如何區分正數負數?我們規定最高位是符號位。為0是正,為1負。所以最高位是不可以參加計算的。
比如二進制數1000最高位是符號位的話,轉十進制不是8,而是-0,對就是負0(正0的二進制形式是0000)。如果給一個十進制形式的負數,如何計算它的補碼?
1、計算這個數絕對值的二進制表示。
2、把2^n寫成二進制形式減去這個數,得到的就是補碼。
比如:-5,
1、5的二進制形式是:0101.最高位是符合位,為0是正。
2、1111-101,二進制的減法,補碼就是1010.最高位是符合位,為1是負。
所以,int占32位的時候,最大可以賦值為:2147483647。也就是0x7fffffff。注意:7的二進制形式最高位為0,如果你對2147483647+1.輸出的就是-2147483648。
這個數是負數中最大的數,也就是int型可以表示的最小的負數。它的十六進制表示為:0x8fffffff,8的二進制形式最高位是符號位,是1,為負。