無符號整型:如果整型常量占用的內存單元完全存放數據位,沒有一個比特的符號位,稱為無符號整型。顯然,無符號基本整型的取值範圍在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