Jeder ganzzahlige Wert mit dem Präfix 0
ist ein oktaler Wert. D.h.: 01 ist oktal 1, 010 ist oktal 10, was dezimal 8 ist, und 0 ist oktal 0 (was dezimal ist, und jede andere, 0).
Also ja, '0' ist ein Oktal.
Das ist die einfache englische Übersetzung des Grammatikschnipsels in @Als' Antwort :-)
Eine Ganzzahl mit vorangestelltem 0x
es n mit vorangestelltem 0
. 0x
ist ein ausdrücklich anderes Präfix. Offenbar gibt es Menschen, die diese Unterscheidung nicht treffen können.
Nach demselben Standard, wenn wir fortfahren:
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