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