• ベストアンサー

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

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

  • re97
  • お礼率80% (601/744)

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

  • ベストアンサー
  • 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

  • 16進数から10進数の計算

    代数で16進数の勉強をしているのですが、分からないためどなたか教えて頂けないでしょうか? 問題)16進数演算の結果のうち、他と異なる物が1つある。それはどれか。10進数の10から15は16進数形式ではA~Fで表記するものとする。 (1)2AFDE-1BCDF (2)ABCD+5432 (3)1FEDC-FEDD (1)については、回答がありますが理解出来ません。 2AFDE=2×16^4+10×16^3+15×16^2+13×16+14 -1BCDF=1×16^4+11×16^3+12×16^2+13×16+15     15×16^3+2×16^2+15×16+15=F2FF なぜこの回答になるかも教えて下さい。宜しくお願い致します。

  • 2進数 問題の意味

    課題で以下のような問題が出されました。 …が、何をすれば良いのか、何が問われているのかが全くわかりません。 詳しく教えて頂けませんでしょうか。 問1.2進数の(11010110)2 を(00101001)2 にビット反転するためにどのような論理演算を行えば良いか。 (11010110)2 の2は右下に小さく表記されています。 この書き方も初めて見ます。 問2.2進数の(1101/0110/0001/1101)2 の右端の4ビットだけを取り出したい。するためにどのような論理演算を行えば良いか。 (1101/0110/0001/1101)2 この書き方も初めてです・・・

  • ビット数について

    その昔8ビットから16ビットの進歩は 2Dの範疇でしたが目覚ましいものがありました その後32ビットになってポリゴン、3Dの演算が可能になり新しい世界を提供してくれました で、64ビットになってそれほど凄い変化は待ってはいませんでした 現に64ビットの後継機種ニンテンドーゲームキューブは32ビットで 処理能力をあくまで優先させてるように思えました ここで思うのは0と1の二進法の演算では32ビットまでが変化の限界なのでしょうか? これから先ゲーム機はビット数に関係のない進化を遂げるのか知りたいです

  • 2進数の計算について

    2進数の計算について分からない問題があるのでお願いします。 (1) 2進5ビットの数値で,01001をバイアス表示とみるとき,10進数ではいくつか (2) 10進数の4を2進5ビットで表す.バイアス表示を用いると,どのように表されるか. できるだけ詳しい回答くれるとありがたいです。

  • このような計算はできるでしょうか?

    現在 「2バイトの数値」から「ビットが1である数」を求める 計算を行おうと思っています。 例えば、2バイトの数値が「222」の場合 →ビットに直すと「11011110」となり →ビットが1である数は「6」となります。 この計算をVBで行いたいのですが、 効率的に行える方法はないでしょうか? AND演算を行い1ビットずつカウントすると いう方法を考えたのすが、判定の時IF文がはいってしまうため 処理速度が遅くなり、困っております。 どなたか、お気づきの方はご教授ください。

  • 2進数データのビット演算

    vb.netにて 0と1からなる2進数で記録した2つの値をビット演算したいと思っております。 Convert.ToInt32("1111101000", 2) などを使って、一度数値に変換して演算すれば、計算可能なことはわかったのですが、計算に利用したいデータが2進数で1000桁ほどあります。桁数が多い場合、Convert.ToInt32ではエラーが出て実行できません。 無数に長い2進数のデータをビット演算するにはどうすればよろしいでしょうか。 ご存知の方、ご教授よろしくお願いいたします。

  • 8ビットを2進数で表現すると…

    質問です。 符号付の整数を8ビットの2進数で表現するとき、00110111-11000001の演算結果はどのようになるのでしょうか? 符号ビットは左端にあり、負数は2の補数で表します。

  • 2進数の減算のオーバーフロー/アンダーフロー

    2進数の減算のオーバーフロー/アンダーフロー 2進数の加減算においてどういうときにオーバーフローするのかわかりません。 例えば、 符号付き整数加算として、 1111+0001=10000 となり、4ビットで表現しきれないので、この場合オーバーフローということでしょうか? 基本的に、元々のビット列の長さ(この場合、4ビット)を演算後、超えてしまう 結果となった場合、オーバーフロー、アンダーフローが起きていると考えてしまって よいのでしょうか? 10進数に変換して10進数の演算結果と異なることが分かれば、オーバーフローが 起きているといえるのでしょうが、ビット長が100ビットなど多ビット長の場合に そのようなことはできないので、簡単なオーバーフロー、アンダーフローの見分け方が 知りたいです。 ご回答お願い致します。

  • 2進数の計算

    127 + (-3) の計算ですが 普通に10進数で計算してから124を2進数に直しても良いのですが、 敢えて2進数での計算方法を教えていただけませんでしょうか。 127は1111111ですが -3は8ビットで表さなければならないのでしょうか? その場合、足したり引いたりしても良いのでしょうか?

  • 2進数の計算について

    次の計算について教えてください。(答えは8ビット2進数でお願いします) (1)00010110×00000110 (2)11101011÷00111011 よろしくお願いします。

専門家に質問してみよう