- ベストアンサー
2進数は計算には使えない? 16進数は使える?
ビット演算を勉強しているのですが、2進数はあくまでも考え方であって、実際のJavaScriptコードに2進数を記述してはいけないのでしょうか? ・16進数は使える? ・それとも10進数だけしか使えない?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
0010は2進数リテラルではありません。 0~は旧8進数リテラルです。 0b~が2進数リテラルです。
その他の回答 (3)
- b0a0a
- ベストアンサー率49% (156/313)
2進数リテラルはあります ただし20文字も30文字も1と0を並べて書くと案外分かりにくいので結局16進数が重宝します
補足
回答ありがとうございました。 ・下記はなぜ8になるのでしょうか? ・0010か、2になると思ったのですが… //10進数 console.log(0|2); //2 //2進数 console.log(0000|0010); //8
- Gotthold
- ベストアンサー率47% (396/832)
2進数とか16進数とかは数値の表現方法であって、 どんな書き方をしても数値としては同じです。 そのため、以下の記述はtrueになります。 alert( 0x100 === 256 ); //true: 16進数リテラルと10進数リテラル alert( 0100 === 64 ); //true: 8進数リテラルと10進数リテラル また、数値そのものに何進数とか言う概念はありません。例えば var a = 0x100; var a = 256; この2つの記述は全く同じ意味なのですから、 数値aは10進数であるとか16進数であるとか言えないのは分かりますね? なので、n進数だったら計算に使える/使えないというのはナンセンスです。 (例えるなら音としての「あ」という発音が、 ひらがなであるとかカタカナであるとか言うのがナンセンス、みたいな感じでしょうか。 音にひらがなもカタカナも無いけど、音を表現するときには何らかの文字を使う。) > 実際のJavaScriptコードに2進数を記述してはいけないのでしょうか? 数値リテラルとして2進数表記が存在するかという意味でしたら、 昔のJavaScriptには2進数リテラルは存在しませんでした。 しかし、最近のブラウザでは、 strictモードで2進数リテラルと新しい8進数リテラルが使えるようです。 "use strict"; alert( 0o100 === 64 ); //true(strictモードでは0100という記述はエラー) alert( 0b100 === 4 ); //true
補足
回答ありがとうございました。 ・下記はなぜ8になるのでしょうか? ・0010か、2になると思ったのですが… //10進数 console.log(0|2); //2 //2進数 console.log(0000|0010); //8
- 中京区 桑原町(@l4330)
- ベストアンサー率22% (4373/19606)
2進数と16進数は同じもの 使い易い様に4ビットごとのまとめたのが16進数なので性質は同じ
補足
回答ありがとうございました。 ・下記はなぜ8になるのでしょうか? ・0010か、2になると思ったのですが… //10進数 console.log(0|2); //2 //2進数 console.log(0000|0010); //8
お礼
回答ありがとうございました。 参考になりましたー