Integer
Standard data type: 32-bit or 64-bit signed, same size as `SizeOf(Any Ptr)`
Syntax
`
Dim variable As Integer
Dim variable As Integer<bits>
`
Parameters
`bits`
A numeric constant expression indicating the size in bits of integer desired. The values allowed are `8`, `16`, `32` or `64`.
Description
Integer is the main data type FreeBASIC uses for integer math and bitwise operations. It is the default type for number literals.
In the first form Integer is a 32-bit or 64-bit signed whole-number data type, depending on the target platform.
If an explicit bit size is given (the second form), a data type is provided that can hold values from `-1LL Shl (bits-1)` up to `(1LL Shl (bits-1)) - 1`. The selected data type is `Byte` for Integer<8>, `Short` for Integer<16>, `Long` for Integer<32> and `LongInt` for Integer<64>.
Example
`
#ifdef __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
`
Dialect Differences

- In the -lang fb and -lang fblite dialects, the `Integer` data type is 32-bit or 64-bit depending on target platform
- In the -lang qb dialect, the `Integer` data type is 16-bit, regardless of platform.

Differences from QB

- The ability to select a bit size is new to FreeBASIC
- The INTEGER type is always 16 bits wide in QB.

See also

- `Long`
- `LongInt`
- `UInteger`
- `CInt`
- `Table with variable types overview, limits and suffixes`