Целочисленные константы в C
"Целая константа" является десятичным (основание 10), восьмеричным (основание 8) или шестнадцатеричным (основание 16) числом, представляющим целое значение. Целые константы служат для представления целых значений, которые не могут быть изменены.
Синтаксис
целочисленная-константа:
десятичная-константа суффикс-целого-числа необвосьмеричная-константа суффикс-целого-числа необ
шестнадцатеричная-константа суффикс-целого-числа необ
десятичная-константа:
ненулевая-цифрадесятичная-константа цифра
восьмеричная-константа:
0восьмеричная-константа восьмеричная-цифра
шестнадцатеричная-константа:
0x шестнадцатеричная-цифра0X шестнадцатеричная-цифра
шестнадцатеричная-константа шестнадцатеричная-цифра
ненулевая-цифра: одна из указанных ниже
1 2 3 4 5 6 7 8 9восьмеричная-цифра: одна из указанных ниже
0 1 2 3 4 5 6 7шестнадцатеричная-цифра: одна из указанных ниже
0 1 2 3 4 5 6 7 8 9a b c d e f
A B C D E F
суффикс-целого-числа:
суффикс-числа-без-знака суффикс-длинного-числа необсуффикс-длинного-числа суффикс-числа-без-знака необ
суффикс-числа-без-знака: один из указанных ниже
u Uсуффикс-длинного-числа: один из указанных ниже
l Lсуффикс-64-битного целого числа:
i64
Целые константы имеют положительное значение, если перед ними не указан знак "минус" (–). Знак "минус" интерпретируется как унарный арифметический оператор изменения знака. (Сведения об этом операторе см. в разделе Унарные арифметические операторы.)
Если целая константа начинается с символов 0x или 0X, она является шестнадцатеричной. Если константа начинается с цифры 0, она восьмеричная. В противном случае считается, что она десятичная.
Следующие строки эквивалентны:
0x1C /* = Hexadecimal representation for decimal 28 */
034 /* = Octal representation for decimal 28 */
Пробельные символы между цифрами целой константы не допускаются. В следующих примерах показаны допустимые десятичные, восьмеричные и шестнадцатеричные константы.
/* Decimal Constants */
10
132
32179
/* Octal Constants */
012
0204
076663
/* Hexadecimal Constants */
0xa or 0xA
0x84
0x7dB3 or 0X7DB3