-
1 # 髒話比謊話乾淨558
-
2 # 使用者352755821118
1、佔用的位元位數量
在32位作業系統下,兩者都是佔用4個位元組,每個位元組有8個位元位,因此有32個0-1的二進位制位數。兩者的不同在於,int型別有正負號(±)的存在,需要比unsigned int型別多消耗一個位數。
2、符號的表示方法
在所有被int型別佔用的位元位中,左起第一個位就是符號位。int型別的符號位上,0表示正數,1表示負數。在32位作業系統下,其餘後面31位是數值位。
3、數字0的表示方法
按照上面提到的符號,我們有了兩種0的表示方法,即“+0”和“-0”。
實際上,在32位系統下int型別中,我們計算機已經強行規定了這種情況,數字0採用“+0”的表示方法,即00000000 00000000 00000000;而“-0”這個特殊的數字被定義為了-2^31。
因此我們看到32位系統下int型別的取值範圍中,負數部分比正數部分多了一個數字,正數的最大取值是2^31-1,而負數的最小取值是-2^31。正數部分之所以要減去1,是因為被數字0佔用了,而負數部分不需要用來表示0,因此原本的“-0”就用來表示-2^31這個數字。
-
3 # 恆信電器666
1、nt型為帶符號整數型別,對於16位編譯器,int佔2位元組8位;對於32位和64位編譯器,int型佔4位元組32位。不同的佔用空間,int型的範圍也不同:2位元組時,int 範圍為-32768~32767;4位元組時,int範圍為-2147483648~2147483647。
無論是哪種儲存方式,均是最高位為符號位,0代表正數,1代表負數。剩餘位儲存實際值。
2、字元是指計算機中使用的字母、數字、字和符號,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。在 ASCII 編碼中,一個英文字母字元儲存需要1個位元組。在 GB 2312 編碼或 GBK 編碼中,一個漢字字元儲存需要2個位元組。
3、字元型資料在記憶體中儲存的是它的ASCII碼值,它是一個位元組,所有資料型別在記憶體中都是以0和1程式碼二進位制儲存的,這個原則不會變。
4、在UTF-8編碼中,一個英文字母字元儲存需要1個位元組,一個漢字字元儲存需要3到4個位元組。在UTF-16編碼中,一個英文字母字元或一個漢字字元儲存都需要2個位元組(Unicode擴充套件區的一些漢字儲存需要4個位元組)。在UTF-32編碼中,世界上任何字元的儲存都需要4個位元組。
5、char是C/C++整型資料之一,其它的如int/long/short等不指定signed/unsigned時都預設是signed,char在標準中是unsigned,編譯器可以實現為帶符號的,也可以實現為不帶符號的,有些編譯器如pSOS的編譯器,還可以透過編譯開關來指定它是有符號數還是無符號數。
-
4 # 使用者3302568163023107
nt佔2個位元組,就相當於16位,所以int型的變數值的範圍為[-2^15 , (2^15 - 1)], 即[-32768,32767];unsigned int取值範圍[0,(2^16 - 1)], 即[0,65535]
回覆列表
不管什麼型別的資料在計算機中都是用2進位制儲存的。
int 是用4個位元組,32位二進位制儲存。
float 也是4個位元組,32個二進位制位儲存的。
而char 是用1個位元組,共8位二進位制儲存的。