Three.js など JavaScript で描画するライブラリなどで色を指定するときに、以下のように「0x」が出てくる。
function getParam () {
return {
color: 0x3399ff,
};
}
「0x」とはなにか。
見た感じ16進数の指定に使っているし、エディターで表示される色が文字リテラルではなく数値リテラルと同じ色なので、ライブラリ標準ではなく言語標準であることが予想できる。
そこで調べてみると、以下のような記載があった。
0xとは、C言語やその記法を受け継ぐ多くのプログラミング言語で16進数リテラルの表記に用いられる接頭辞。「0x10」という表記は「16進数の“10”」(十進数の16)という意味になる。
https://e-words.jp/w/0x.html
数値について複数の異なる基数(n進数のn)による表記が可能な言語では、コードなどに記述された数字の並びが何進数であるのかを区別するために先頭や末尾に特別な英数字の組み合わせを付け加えることがある。
何を付け加えると何進数を表すかは言語仕様によって決まっており、C言語では先頭が「0x」という接頭辞(プレフィクス)から始まる数値表記は16進数を表すと規定されている。C++言語やJava、JavaScriptなど、C言語系の仕様や記法を参考にした多くの言語でこの表記法が受け継がれている。
(中略)
現在では、特に言語を指定しない状況でも、慣用的に16進数を表す記法として用いられることがある。
なるほど。C言語から派生して JavaScript でも規定されているようだ。