Ön ekli herhangi bir tam sayı değeri 0
sekizlik bir değerdir. Yani: 01 sekizli 1, 010 sekizli 10, ondalık 8 ve 0 sekizli 0 (ondalık ve diğer 0).
Evet, '0' bir sekizli.
Bu, @ Als'in cevabındaki dilbilgisi snippet'inin basit İngilizce çevirisidir :-)
Bir tamsayı öneki 0x
olan değil öneki 0
. 0x
açıkça farklı bir önektir. Görünüşe göre bu ayrımı yapamayan insanlar var.
Aynı standarda göre, devam edersek:
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