Numeric Literals

Numbers can be written in various bases. Numbers are assumed to be decimal by default. Non-decimal literals have a specific prefix.

Numeral system

Prefix

Characters

Decimal

None

one or more numbers (0 to 9)

Binary

0b

one or more zeros or ones (0 or 1)

Octal

0o

one or more numbers in the range 0 to 7

Hexadecimal

0x

one or more numbers, or characters a to f, lowercase or uppercase

// A decimal number
//
1234567890  // is `1234567890`

// A binary number
//
0b101010  // is `42`

// An octal number
//
0o12345670  // is `2739128`

// A hexadecimal number
//
0x1234567890ABCabc  // is `1311768467294898876`

// Invalid: unsupported prefix 0z
//
0z0

// A decimal number with leading zeros. Not an octal number!
00123 // is `123`

// A binary number with several trailing zeros.
0b001000  // is `8`

Decimal numbers may contain underscores (_) to logically separate components.

let largeNumber = 1_000_000

// Invalid: Value is not a number literal, but a variable.
let notNumber = _123

Underscores are allowed for all numeral systems.

let binaryNumber = 0b10_11_01

Last updated