integer

編程語言的數據類型之一

integer,整數/整型數,與小數/浮點數相對,是編程語言的基本數據類型之一,用以指示變數的數據類型,有時也用於常量(變數、表達式)的強制數據類型轉換。整型數據的長度及其取值範圍並不固定,受編譯環境影響。在不同的編程語言中做此類型聲明時,具體實現方式也可能會有所區別。

含義


Integer數據類型
Integer一個整型數據用來存儲整數,整數包括正整數,負整數和零。
整型常量採用十進位整數表示。如1991,0,-123等等都是整型常量。而52.0或131.4都不是整型常量。
Integer變數存儲為最接近編譯環境的長度,例如在32位的編譯環境下,Integer為32位,其範圍為-2^15到2^15-1之間。
VB中Integer的類型聲明字元是百分比符號(%)。Pascal中就是integer。在C語言中被縮寫成為int。

語言環境


Pascal環境

Pascal中有一個標準標識符maxint,它代表Pascal系統中整型類數據的最大值。1位元組(byte)由8個二進位位(bit)組成。一個整型數用2個位元組存儲,最大的整型數是2^15-1,即是32767,最小值為-2^15,即-32768。大多數整數是有序類型。
Pascal支持八種整型,詳見下表:
類型數值範圍佔位元組數格式
shortint-128(-2^7)~127(2^7-1)1帶符號8位
byte0~255(2^8-1)1無符號8位
smallint-32768(-2^15)~32767(2^15-1)2帶符號16位
word0~65535(2^16-1)2無符號16位
integersmallint或longint2或4帶符號16/32位
cardinallongword4無符號32位
longint-2147483648(-2^31)~2147483647(2^31-1)4帶符號32位
longword0~4294967295(2^32-1)4無符號32位
int64-9223372036854775808(-2^63)~9223372036854775807(2^63-1)8帶符號64位
qword0~18446744073709551615(2^64-1)8無符號64位
注意int64和qword不是真正的有序類型,一些Pascal結構不支持這兩種類型(如位運算)。
在默認的Pascal模式里integer類型映射到smallint類型,在Delphi或ObjFPC模式integer類型映射到longint類型。Cardinal類型和dword類型總是映射到longword類型。
目前32位的CPU提供的標準整型是32位,所以用longint的速度比integer的速度快。

VB環境

VB中也可以用Integer變數來表示枚舉值。枚舉值可包含一個有限集合,該集合包含的元素都是唯一的整數,每一個整數都在它使用時的上下文當中有其特殊意義。枚舉值為在已知數量的選項中做出選擇提供了一種方便的方法,例如,black=0,white=1等等。較好的編程作法是使用Const語句將每個枚舉值定義成常數。
在MicrosoftVisualBasic6中,可用CInt函數將其他數字數據類型轉換成整數型,如i=CInt("10")
integer用於保存整數。如果知道變數總是存放整數,則應該將其申明為Interger類型或Long類型。整數的運算速度快,而且佔用的內存少。

C語言環境

32位操作系統中,C語言中的int類型變數佔用4位元組內存(即32位二進位數),可以表示-2^31~2^31-1(-2147483648~2147483647)之間的整數。與int有關的數據類型還有short和long,三者都是表示整形數字的數據類型。在32位機器上,short佔用2位元組,可以表示-2^15~2^15-1(-32768~32767)之間的整數;long類型與int類型相同,同樣佔用4位元組,表示數字的範圍也相同。
另外,c語言中還有一種數據類型unsignedint,是無符號整型,可以表示0~2^32-1之間的整數。

Java語言環境中

Integer類在對象中包裝了一個基本類型int的值。Integer類型的對象包含一個int類型的欄位。
此外,該類提供了多個方法,能在int類型和String類型之間互相轉換,還提供了處理int類型時非常有用的其他一些常量和方法。
實現注意事項:“bittwiddling”方法(如highestOneBit和numberOfTrailingZeros)的實現基於HenryS.Warren,Jr.撰寫的《Hacker'sDelight》(AddisonWesley,2002)中的一些有關材料。

SQL語言

微軟最新版的SQLSERVER2017中共有4種int數據類型,分別對應不同的精度和存儲大小。
【bigint】
從-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型數據(所有數字)。存儲大小為8個位元組。
【int】
從-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型數據(所有數字)。存儲大小為4個位元組。int的SQL-92同義字為integer。
【smallint】
從-2^15(-32,768)到2^15-1(32,767)的整型數據。存儲大小為2個位元組。
【tinyint】
從0到255的整型數據。存儲大小為1位元組。