{{fbdoc item="title" value="INTEGER"}}----
Standard data type: 32-bit or 64-bit signed, same size as ##[[KeyPgSizeof SizeOf]]([[KeyPgAny Any]] [[KeyPgPtr Ptr]])##

{{fbdoc item="syntax"}}##
	[[KeyPgDim dim]] //variable// [[KeyPgAs as]] **Integer**
	[[KeyPgDim dim]] //variable// [[KeyPgAs as]] **Integer**<//bits//>
##
{{fbdoc item="param"}}
	##//bits//##
		A numeric constant expression indicating the size in bits of integer desired.  The values allowed are ##8##, ##16##, ##32## or ##64##.

{{fbdoc item="desc"}}
	32-bit or 64-bit signed whole-number data type, depending on the platform.
	
	**Integer** is the main data type ""FreeBASIC"" uses for integer math and bitwise operations. It is the default type for number literals.
	
	If an explicit bit size is given, a data type is provided that can hold values from ##-1LL [[KeyPgOpShiftleft Shl]] (//bits//-1)## up to ##(1LL [[KeyPgOpShiftleft Shl]] (//bits//-1)) - 1##.

{{fbdoc item="ex"}}
{{fbdoc item="filename" value="examples/manual/datatype/integer.bas"}}%%(freebasic)
#if __FB_64BIT__
	Dim x As Integer = &H8000000000000000
	Dim y As Integer = &H7FFFFFFFFFFFFFFF
	Print "Integer Range = "; x; " to "; y
#else
	Dim x As Integer = &H80000000
	Dim y As Integer = &H7FFFFFFF
	Print "Integer Range = "; x; " to "; y
#endif
%%

{{fbdoc item="lang"}}
	- In the //[[CompilerOptlang -lang fb]]// and //[[CompilerOptlang -lang fblite]]// dialects, the ##**Integer**## data type is 32-bit.
	- In the //[[CompilerOptlang -lang qb]]// dialect, the ##**Integer**## data type is 16-bit, regardless of platform.

{{fbdoc item="diff"}}
	- The ability to select a bit size is new to ""FreeBASIC""
	- The INTEGER type is always 16 bits wide in QB.

{{fbdoc item="see"}}
	- ##[[KeyPgLong Long]]##
	- ##[[KeyPgLongint Longint]]##
	- ##[[KeyPgUinteger Uinteger]]##
	- ##[[KeyPgCint Cint]]##

{{fbdoc item="back" value="CatPgStdDataTypes|Standard Data Types"}}