• ベストアンサー

2進数は計算には使えない? 16進数は使える? 

ビット演算を勉強しているのですが、2進数はあくまでも考え方であって、実際のJavaScriptコードに2進数を記述してはいけないのでしょうか? ・16進数は使える? ・それとも10進数だけしか使えない?

質問者が選んだベストアンサー

  • ベストアンサー
  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.4

0010は2進数リテラルではありません。 0~は旧8進数リテラルです。 0b~が2進数リテラルです。

re97
質問者

お礼

回答ありがとうございました。 参考になりましたー

その他の回答 (3)

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.3

2進数リテラルはあります ただし20文字も30文字も1と0を並べて書くと案外分かりにくいので結局16進数が重宝します

re97
質問者

補足

回答ありがとうございました。 ・下記はなぜ8になるのでしょうか? ・0010か、2になると思ったのですが… //10進数 console.log(0|2); //2 //2進数 console.log(0000|0010); //8

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.2

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

re97
質問者

補足

回答ありがとうございました。 ・下記はなぜ8になるのでしょうか? ・0010か、2になると思ったのですが… //10進数 console.log(0|2); //2 //2進数 console.log(0000|0010); //8

回答No.1

  2進数と16進数は同じもの 使い易い様に4ビットごとのまとめたのが16進数なので性質は同じ  

re97
質問者

補足

回答ありがとうございました。 ・下記はなぜ8になるのでしょうか? ・0010か、2になると思ったのですが… //10進数 console.log(0|2); //2 //2進数 console.log(0000|0010); //8

関連するQ&A

専門家に質問してみよう