Nilai integer apa pun yang diawali dengan 0
adalah nilai oktal. Yaitu: 01 adalah oktal 1, 010 adalah oktal 10, yang merupakan desimal 8, dan 0 adalah oktal 0 (yang desimal, dan yang lainnya, 0).
Jadi ya, '0' adalah oktal.
Itu terjemahan bahasa Inggris sederhana dari potongan tata bahasa di jawaban Als :-)
Integer diawali dengan 0x
yang tidak diawali dengan 0
. 0x
adalah awalan yang sangat berbeda. Rupanya ada orang yang tidak dapat membuat perbedaan ini.
Sesuai standar yang sama, jika kita melanjutkan:
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