Integers¶
There are four signed integer types, and four unsigned integer types:
Type | Length | Minimum Value | Maximum Value |
---|---|---|---|
Int8 |
8 | −128 | 127 |
Int16 |
16 | −32,768 | 32,767 |
Int32 |
32 | −2,147,483,648 | 2,147,483,647 |
Int64 |
64 | −263 | 263 − 1 |
UInt8 |
8 | 0 | 255 |
UInt16 |
16 | 0 | 65,535 |
UInt32 |
32 | 0 | 4,294,967,295 |
UInt64 |
64 | 0 | 264 − 1 |
An integer literal is an optional +
or -
sign, followed by
a sequence of digits and underscores, optionally followed by a suffix.
If no suffix is present, the literal's type is the lowest between Int32
, Int64
and UInt64
in which the number fits:
1 # Int32
1_i8 # Int8
1_i16 # Int16
1_i32 # Int32
1_i64 # Int64
1_u8 # UInt8
1_u16 # UInt16
1_u32 # UInt32
1_u64 # UInt64
+10 # Int32
-20 # Int32
2147483648 # Int64
9223372036854775808 # UInt64
The underscore _
before the suffix is optional.
Underscores can be used to make some numbers more readable:
1_000_000 # better than 1000000
Binary numbers start with 0b
:
0b1101 # == 13
Octal numbers start with a 0o
:
0o123 # == 83
Hexadecimal numbers start with 0x
:
0xFE012D # == 16646445
0xfe012d # == 16646445