Бьерн Страуструп - Язык программирования С++. Главы 2-4
Страница 19. Целые константы



2.4.1  Целые константы

Целые константы могут появляться в четырех обличьях: десятичные,
восьмеричные, шестнадцатеричные и символьные константы. Десятичные
константы используются чаще всего и выглядят естественно:

        0    1234    976    12345678901234567890

Десятичная константа имеет тип int,  если она умещается в память,
отводимую для int, в противном случае ее тип long. Транслятор должен
предупреждать о константах, величина которых превышает выбранный формат
представления чисел.
Константа, начинающаяся с нуля, за которым следует x (0x), является
шестнадцатеричным числом (с основанием 16), а константа, которая
начинающаяся с нуля, за которым следует цифра, является восьмеричным
числом (с основанием 8). Приведем примеры восьмеричных констант:

        0        02        077        0123

Их десятичные эквиваленты равны соответственно: 0, 2, 63, 83.
В шестнадцатеричной записи эти константы выглядят так:

        0x0      0x2       0x3f       0x53

Буквы a,  b, c, d, e и f или эквивалентные им заглавные буквы
используются для представления чисел 10, 11, 12, 13, 14 и 15,
соответственно. Восьмеричная  и шестнадцатеричная формы записи наиболее
подходят для задания набора разрядов, а
использование их для обычных чисел может дать неожиданный эффект.
Например, на машине, в которой int представляется как 16-разрядное
число в дополнительном коде, 0xffff есть отрицательное десятичное
число -1. Если бы для представления целого использовалось большее число
разрядов, то это было бы числом 65535.
   Окончание U может использоваться для явного задания констант типа
unsigned. Аналогично, окончание L явно задает константу типа long.
Например:

          void f(int);
          void f(unsigned int);
          void f(long int);

          void g()
          {
            f(3);      // вызов f(int)
            f(3U);     // вызов f(unsigned int)
            f(3L);     // вызов f(long int)
          }

 
« Предыдущая статья   Следующая статья »