Шрифт:
A.2.1. Целочисленные литералы
Целочисленные литералы (integer literals) имеют три разновидности.
• Десятичные: последовательности десятичных цифр.
Десятичные цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9.
• Восьмеричные: последовательности восьмеричных цифр, начинающиеся с нуля.
Восьмеричные цифры: 0, 1, 2, 3, 4, 5, 6 и 7.
• Шестнадцатеричные: последовательности шестнадцатеричных цифр, начинающихся с 0x или 0X.
Шестнадцатеричные цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, A, B, C, D, E и F.
Суффикс u или U означает, что целочисленный литерал не имеет знака, т.е. имеет спецификатор unsigned (см. раздел 25.5.3), а суффикс l или L относит их к типу
A.2.1.1. Числовые системы
Обычно мы записываем числа в десятичной системе. Число
Впрочем, иногда используются и другие системы счисления. Как правило, положительные целые числа в памяти компьютера представляются в двоичной системе счисления, т.е. база счисления равна 2 (значения 0 и 1 относительно легко представить с помощью физических состояний). Люди, сталкивающиеся с необходимостью решать задачи на низком уровне аппаратного обеспечения, иногда используют восьмеричную систему счисления (база равна 8), а при адресации памяти чаще используется шестнадцатеричная система (база равна 16).
Рассмотрим шестнадцатеричную систему счисления. Мы должны назвать шестнадцать значений от 0 до 15. Обычно для этого используются следующие символы:
Теперь можем записать десятичное число
Это объясняет популярность шестнадцатеричной системы. В частности, значение байта просто выражается двумя шестнадцатеричными цифрами.
В языке C++ (к счастью) числа являются десятичными, если иное не указано явно. Для того чтобы сказать, что число является шестнадцатеричным, следует поставить префикс
Восьмеричная система основана на базе счисления, равной восьми. В этом случае мы можем использовать только восемь восьмеричных цифр: