(この記事は 地平線に行く とのマルチポストです)
8進数を表記する文法は、主に以下の3つがあります。
(二番目と三番目は分かりにくいですが ゼロ オー
1 です)
- プリフィックスとして
0
を付与する (例:0123
) - プリフィックスとして
0o
を付与する (例:0o123
) - プリフィックスとして
0O
を付与する (例:0O123
)
これらのうち、各プログラミング言語がどの文法を採用しているかを表にまとめました。
言語 | 0 |
0o |
0O |
---|---|---|---|
C | ○ | × | × |
PHP | ○ | × | × |
Perl | ○ | × | × |
Java | ○ | × | × |
Scala (~2.9) | ○ | × | × |
Scala (2.10~) | × | × | × |
Kotlin | × | × | × |
C# | × | × | × |
Rust | × | ○ | × |
Swift | × | ○ | × |
Go | ○ | ○ | ○ |
Ruby | ○ | ○ | ○ |
Python2 | ○ | ○ | ○ |
Python3 | × | ○ | ○ |
JavaScript2 | ○ | ○ | ○ |
考察
- C や Java などは、プリフィックス
0
しか採用していない - Scala や Python は、プリフィックス
0
を採用していたけどやめた - C# や Kotlin はもそも8進数表記を採用していない
- 最近の傾向として、プリフィックス
0o
が採用されてきている
「8進数は 0123
って書くんだよ」というのは、もはや古いのかもしれません。
-
octet (8個組) の o ↩
-
ただし、0 のあとに 8 か 9 を含むなら10進数。参考:字句文法 - JavaScript | MDN ↩