Программирование. Принципы и практика использования C++ Исправленное издание, стр. 404
Впрочем, иногда используются и другие системы счисления. Как правило, положительные целые числа в памяти компьютера представляются в двоичной системе счисления, т.е. база счисления равна 2 (значения 0 и 1 относительно легко представить с помощью физических состояний). Люди, сталкивающиеся с необходимостью решать задачи на низком уровне аппаратного обеспечения, иногда используют восьмеричную систему счисления (база равна 8), а при адресации памяти чаще используется шестнадцатеричная система (база равна 16).
Рассмотрим шестнадцатеричную систему счисления. Мы должны назвать шестнадцать значений от 0 до 15. Обычно для этого используются следующие символы:
0123456789ABCDEFA10B11A==10B==11C==12D==13E==14F==15Теперь можем записать десятичное число
1237B7B7*16+111231231*16^2+2*16+31*256+2*16+3291
Это объясняет популярность шестнадцатеричной системы. В частности, значение байта просто выражается двумя шестнадцатеричными цифрами.
В языке C++ (к счастью) числа являются десятичными, если иное не указано явно. Для того чтобы сказать, что число является шестнадцатеричным, следует поставить префикс
0XX123==0X7B0X123==291x123==0x7B0x123==291abcdef123==0x7bВосьмеричная система основана на базе счисления, равной восьми. В этом случае мы можем использовать только восемь восьмеричных цифр:
01234567001231231*8^2+2*8+31*64+2*8+383830838*8+3670123==83083==67Двоичная система основана на базе счисления, равной двум. В этой системе есть только две цифры:
011231*2^6+1*2^5+1*2^4+1*2^3+0*2^2+1*2+11*64+1*32+1*16+1*8+0*4+1*2+11111011A.2.2. Литералы с плавающей точкой
Литералы с плавающей точкой (floating-point-literal) содержат десятичную точку (
.e3df123 // int (нет десятичной точки, суффикса или показателя степени)123. // double: 123.0123.0 // double.123 // double: 0.1230.123 // double1.23e3 // double: 1230.01.23e–3 // double: 0.001231.23e+3 // double: 1230.0Литералы с плавающей точкой имеют тип
double1.23 // double1.23f // float1.23L // long double