32位有符號(hào)整數(shù)可以表示的最大值是?
32位操作系統(tǒng)int類型的最大值是 2147483647。在32位操作系統(tǒng)下int類型取值范圍如下:
1、Int32 //等于int, 占4個(gè)字節(jié)(-2147483648~2147483647)。
2、Int8 //等于byte,
3、Int16 //等于short, 占2個(gè)字節(jié)(-32768~32767)。
4、Int64 //等于long, 占8個(gè)字節(jié)(-9223372036854775808~9223372036854775807)。問題一:signed int 有符號(hào)整型和int 整型概念不同。int就是signed int,書上寫的時(shí)候都是用[signed] int表示signed可以省略,int 默認(rèn)是 signed int 也就是說是有符號(hào)整型,最高位是符號(hào)位,數(shù)據(jù)只占31位。unsigned int是無符號(hào)整型,最高位也是數(shù)據(jù)位,數(shù)據(jù)占滿32位。
變量類型的每一種都有無符號(hào)(unsigned)和有符號(hào)(signed)兩種類型(float和double總是帶符號(hào)的),在默認(rèn)情況下聲明的整型變量都是有符號(hào)的類型(char有點(diǎn)特別),如果需聲明無符號(hào)類型的話就需要在類型前加上unsigned。無符號(hào)版本和有符號(hào)版本的區(qū)別就是無符號(hào)類型能保存2倍于有符號(hào)類型的正整數(shù)數(shù)據(jù)。問題二:在32位平臺(tái)下,int型最大可以賦值為:2147483647(2^31-1),unsigned int型最大可以賦值為:4294967295(2^32-1)。
16位系統(tǒng)中一個(gè)int能存儲(chǔ)的數(shù)據(jù)的范圍為-32768~32767,而unsigned能存儲(chǔ)的數(shù)據(jù)范圍則是0~65535。由于在計(jì)算機(jī)中,整數(shù)是以補(bǔ)碼形式存放的。問題三:當(dāng)int賦值為4294967295時(shí),語法分析會(huì)認(rèn)為這是一個(gè)unsigned int型的值,因此它的取值范圍是:0~4294967295。
Int是將一個(gè)數(shù)值向下取整為最接近的整數(shù)的函數(shù)。INT是數(shù)據(jù)庫中常用函數(shù)中的取整函數(shù),常用來判別一個(gè)數(shù)能否被另一個(gè)數(shù)整除。在計(jì)算機(jī)里,對(duì)數(shù)字編碼有3種方式:原碼、補(bǔ)碼、反碼。原碼其實(shí)就是10進(jìn)制數(shù)直接轉(zhuǎn)2進(jìn)制數(shù)的結(jié)果。比如:十進(jìn)制的18,在二進(jìn)制里是10010。那這里的10010就是原碼。可以sizeof一下自己的電腦上int型占幾個(gè)字節(jié)。我的是4個(gè)字節(jié),也就是說只有32個(gè)位。
如果一個(gè)十進(jìn)制數(shù)轉(zhuǎn)位二進(jìn)制數(shù)位數(shù)大于32,就溢出,其實(shí)也就是存不下了。存數(shù)不僅僅有正數(shù)還有負(fù)數(shù),在計(jì)算機(jī)里如何區(qū)分正數(shù)負(fù)數(shù)?我們規(guī)定最高位是符號(hào)位。為0是正,為1負(fù)。所以最高位是不可以參加計(jì)算的。比如二進(jìn)制數(shù)1000最高位是符號(hào)位的話,轉(zhuǎn)十進(jìn)制不是8,而是-0,對(duì)就是負(fù)0(正0的二進(jìn)制形式是0000)。
如果給一個(gè)十進(jìn)制形式的負(fù)數(shù),如何計(jì)算它的補(bǔ)碼?1、計(jì)算這個(gè)數(shù)絕對(duì)值的二進(jìn)制表示。2、把2^n寫成二進(jìn)制形式減去這個(gè)數(shù),得到的就是補(bǔ)碼。比如:-5,1、5的二進(jìn)制形式是:0101.最高位是符合位,為0是正。2.、1111-101,二進(jìn)制的減法,補(bǔ)碼就是1010.最高位是符合位,為1是負(fù)。所以,int占32位的時(shí)候,最大可以賦值為:2147483647。
也就是0x7fffffff。注意:7的二進(jìn)制形式最高位為0,如果對(duì)2147483647+1.輸出的就是-2147483648。這個(gè)數(shù)是負(fù)數(shù)中最大的數(shù),也就是int型可以表示的最小的負(fù)數(shù)。它的十六進(jìn)制表示為:0x8fffffff,8的二進(jìn)制形式最高位是符號(hào)位,是1,為負(fù)。