Целые числа
Существует четыре знаковых типа целых чисел и четыре беззнаковых типа целых чисел:
| Тип | Длина | Минимальное значение | Максимальное значение |
|---|---|---|---|
| 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 |
Литерал целого числа — это необязательный знак + или -, за которым следует последовательность цифр и символов подчёркивания; после неё может указываться суффикс. Если суффикс отсутствует, тип литерала — наименьший из типов Int32, Int64 и UInt64, в который помещается число:
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
Символ подчёркивания _ перед суффиксом необязателен.
Символы подчёркивания можно использовать, чтобы числа было легче читать:
1_000_000 # better than 1000000
Двоичные числа начинаются с 0b:
0b1101 # == 13
Восьмеричные числа начинаются с 0o:
0o123 # == 83
Шестнадцатеричные числа начинаются с 0x:
0xFE012D # == 16646445
0xfe012d # == 16646445
To the extent possible under law, the persons who contributed to this workhave waived
all copyright and related or neighboring rights to this workby associating CC0 with it.
https://crystal-lang.org/reference/1.2/syntax_and_semantics/literals/integers.html