- ベストアンサー
2進数は計算には使えない? 16進数は使える?
ビット演算を勉強しているのですが、2進数はあくまでも考え方であって、実際のJavaScriptコードに2進数を記述してはいけないのでしょうか? ・16進数は使える? ・それとも10進数だけしか使えない?
- re97
- お礼率80% (601/744)
- JavaScript
- 回答数4
- ありがとう数4
- みんなの回答 (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/19604)
2進数と16進数は同じもの 使い易い様に4ビットごとのまとめたのが16進数なので性質は同じ
補足
回答ありがとうございました。 ・下記はなぜ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 この書き方も初めてです・・・
- ベストアンサー
- 数学・算数
- 2進数の計算について
2進数の計算について分からない問題があるのでお願いします。 (1) 2進5ビットの数値で,01001をバイアス表示とみるとき,10進数ではいくつか (2) 10進数の4を2進5ビットで表す.バイアス表示を用いると,どのように表されるか. できるだけ詳しい回答くれるとありがたいです。
- ベストアンサー
- その他([技術者向] コンピューター)
- このような計算はできるでしょうか?
現在 「2バイトの数値」から「ビットが1である数」を求める 計算を行おうと思っています。 例えば、2バイトの数値が「222」の場合 →ビットに直すと「11011110」となり →ビットが1である数は「6」となります。 この計算をVBで行いたいのですが、 効率的に行える方法はないでしょうか? AND演算を行い1ビットずつカウントすると いう方法を考えたのすが、判定の時IF文がはいってしまうため 処理速度が遅くなり、困っております。 どなたか、お気づきの方はご教授ください。
- ベストアンサー
- Visual Basic
- 2進数データのビット演算
vb.netにて 0と1からなる2進数で記録した2つの値をビット演算したいと思っております。 Convert.ToInt32("1111101000", 2) などを使って、一度数値に変換して演算すれば、計算可能なことはわかったのですが、計算に利用したいデータが2進数で1000桁ほどあります。桁数が多い場合、Convert.ToInt32ではエラーが出て実行できません。 無数に長い2進数のデータをビット演算するにはどうすればよろしいでしょうか。 ご存知の方、ご教授よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- 8ビットを2進数で表現すると…
質問です。 符号付の整数を8ビットの2進数で表現するとき、00110111-11000001の演算結果はどのようになるのでしょうか? 符号ビットは左端にあり、負数は2の補数で表します。
- 締切済み
- その他([技術者向] コンピューター)
- 2進数の減算のオーバーフロー/アンダーフロー
2進数の減算のオーバーフロー/アンダーフロー 2進数の加減算においてどういうときにオーバーフローするのかわかりません。 例えば、 符号付き整数加算として、 1111+0001=10000 となり、4ビットで表現しきれないので、この場合オーバーフローということでしょうか? 基本的に、元々のビット列の長さ(この場合、4ビット)を演算後、超えてしまう 結果となった場合、オーバーフロー、アンダーフローが起きていると考えてしまって よいのでしょうか? 10進数に変換して10進数の演算結果と異なることが分かれば、オーバーフローが 起きているといえるのでしょうが、ビット長が100ビットなど多ビット長の場合に そのようなことはできないので、簡単なオーバーフロー、アンダーフローの見分け方が 知りたいです。 ご回答お願い致します。
- ベストアンサー
- 科学
- 2進数の計算について
次の計算について教えてください。(答えは8ビット2進数でお願いします) (1)00010110×00000110 (2)11101011÷00111011 よろしくお願いします。
- 締切済み
- 電気・電子工学
お礼
回答ありがとうございました。 参考になりましたー