ค่าจำนวนเต็มใด ๆ ที่นำหน้าด้วย0
เป็นค่าฐานแปด Ie: 01 คือ octal 1, 010 คือ octal 10 ซึ่งเป็นทศนิยม 8 และ 0 คือ octal 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