Будь-яке ціле значення з префіксом 0
- вісімкове значення. Тобто: 01 - восьмеричний 1, 010 - восьмеричний 10, що становить десятковий 8, а 0 - восьмеричний 0 (що є десятковим, а будь-яке інше - 0).
Так, так, "0" - вісімка.
Це звичайний англійський переклад фрагмента граматики у відповіді @ Als :-)
Ціле число з префіксом не0x
є префіксом . є явно іншим префіксом. Мабуть, є люди, які не можуть цього розрізнити.0
0x
Відповідно до того самого стандарту, якщо ми продовжимо:
integer-literal:
decimal-literal integer-suffixopt
octal-literal integer-suffixopt
hexadecimal-literal integer-suffixopt
decimal-literal:
nonzero-digit <<<---- That's the case of no prefix.
decimal-literal digit-separatoropt digit
octal-literal:
0 <<<---- '0' prefix defined here.
octal-literal digit-separatoropt octal-digit <<<---- No 'x' or 'X' is
allowed here.
hexadecimal-literal:
0x hexadecimal-digit <<<---- '0x' prefix defined here
0X hexadecimal-digit <<<---- And here.
hexadecimal-literal digit-separatoropt hexadecimal-digit