正文 第9章 數據類型、運算符和表達式2(2 / 2)

無符號整型:如果整型常量占用的內存單元完全存放數據位,沒有一個比特的符號位,稱為無符號整型。顯然,無符號基本整型的取值範圍在0~65535之間,無符號長整型的取值範圍在0~4294967295之間。無符號基本整型常量以字母u或U結尾,如123u,無符號長整型常量以字母ul或UL結尾,如123456789UL。

整型數據在內存中是以二進製補碼的形式存放的。如果定義了一個整型變量i,

inti;

i=10;

在C語言中,整型變量可以分為基本整型、短整型、長整型和無符號整型四類。

基本整型:類型說明符為int,在內存中占2個字節,取值範圍是-215~215-1,即-32768~32767。

短整型:類型說明符為shortint或short,所占字節和取值範圍均與基本整型相同。

長整型:類型說明符為longint或long,在內存中占4個字節,取值範圍是-231~231-1。

無符號整型:類型說明符為unsigned,所占內存空間與相應的有符號類型變量相同,但由於省去符號位,所以不能表示負數。

例如,有符號整型變量最大可以表示32767,最高位代表符號位,0表示正數,1表示負數。

無符號基本整型:類型說明符為unsignedint或unsigned,在內存中占2個字節,取值範圍是0~216-1,即0~65535。

無符號短整型:類型說明符為unsignedshort,所占字節和取值範圍均與無符號基本整型相同。

無符號長整型:類型說明符為unsignedlong,在內存中占4個字節,取值範圍是0~232-1。

類型說明符〖〗數的取值範圍〖〗字節數int〖〗-32768~32767〖〗即-215~215-1〖〗2unsigned[int]〖〗0~65535〖〗即0~216-1〖〗2short[int]〖〗-32768~32767〖〗即-215~215-1〖〗2unsignedshort〖〗0~65535〖〗即0~216-1〖〗2long[int]〖〗-2147483648~2147483647〖〗即-231~231-1〖〗4unsignedlong〖〗0~4294967295〖〗即0~232-1〖〗4以十進製整數9為例,其各種類型的整型在內存單元中存儲形式為:

int型:

00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗10〖〗01

shortint型:

00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗10〖〗01

longint型:

00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗10〖〗01

unsignedint型:

00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗10〖〗01

unsignedshort型:

00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗10〖〗01

unsignedlong型:

00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗00〖〗10〖〗01