Целочисленные константы — это числа, используемые напрямую в коде программы, без определения переменной для их хранения. По умолчанию такие константы определяются как тип int (от integer – целочисленный), однако это может быть изменено директивами U и L.

Обычно константы такого типа считаются десятичными целыми числами, однако специальные директивы позволяют менять основание системы счисления (см. таблицу ниже).

Основание системы счисления Пример Директива Комментарий
10 (десятеричный – decimal) 12345 нет
2 (двоичный – binary) B1011 первый символ – “B” только для 8-разрядных значений (от 0 до 255 включительно), разрешенные знаки 0 и 1
8 (восьмеричный – octal) 765 первый символ -“O” разрешенные знаки –  0-7
16 (шестнадцатеричный – hexadecimal) 0xA8D первые символы -“0x” разрешенные знаки 0-9, A … F (либо a … f)

 

У десятичных констант (decimal) основание системы счисления равно 10. Они наиболее распространены и применяются повсеместно. Не имеют директив. Константы без префиксов (директив) по умолчанию считаются десятичными.

Пример:

 У двоичных констант (binary) основание системы счисления равно 2. В таких константах используются только 0 и 1. Они не имеют директив.

Пример:

Использование двоичного формата  разрешено только для 8-разрядных чисел, принимающих значения в пределах от 0 (B0) до 255 (B11111111). Если необходимо задать значение 16-битного целого int бинарными константами, то это может быть сделано в следующим образом:

Пример:

У восьмеричных констант (octal) основание системы счисления равно 8. Допустимы значения символов в диапазоне 0 … 7. Префикс – “O”.

Пример:

У шестнадцатеричных констант (hexadecimal, сокращённо hex) основание системы счисления равно 16. Допустимы значения символов в диапазоне 0 … 9, и A … F (либо a … f). Префикс – “0x”.

Пример:

Директивы U и L.

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

  • ‘u’ или ‘U’ для беззнакового целочисленного числа. Пример: 87u
  • ‘l’ или ‘L’ для типа данных longПример: 111111L
  • ‘ul’ или ‘UL’ для беззнакового числа типа данных  longПример: 32767ul