4
1

More than 3 years have passed since last update.

どの8進数リテラルが使えるかはプログラミング言語によって異なる

Last updated at Posted at 2020-04-12

(この記事は 地平線に行く とのマルチポストです)

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 って書くんだよ」というのは、もはや古いのかもしれません。


  1. octet (8個組) の o 

  2. ただし、0 のあとに 8 か 9 を含むなら10進数。参考:字句文法 - JavaScript | MDN 

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1