なぜJavaScriptのですか?JavaScriptとビット単位の演算子
console.log('1000' | '1010'); // 1018
ではなく、 '1010'ですか?
と '1000'
console.log('1000' & '1010'); // 992
ありませんか?
JavaScriptのビット単位の計算にはどのような方法がありますか?
なぜJavaScriptのですか?JavaScriptとビット単位の演算子
console.log('1000' | '1010'); // 1018
ではなく、 '1010'ですか?
と '1000'
console.log('1000' & '1010'); // 992
ありませんか?
JavaScriptのビット単位の計算にはどのような方法がありますか?
あなたが進数として入力を定義する必要があります。
console.log(0b1000 | 0b1010);
> 10
次にあなたがバイナリ表記に小数をバックに変換することができます
Number(10).toString(2);
> "1010"
ありがとうございます。バイナリ数字と "バイナリ文字列"も使用できます! – jMike
入力番号はバイナリで定義する必要があります。演算の後、結果をバイナリに変換する必要があります。これは、ビット単位の演算で10進数が生成されるためです。次のコードはあなたの望む出力を生成します。
console.log(('0b1000' | '0b1010').toString(2));
console.log(('0b1000' & '0b1010').toString(2));
ありがとう、これは動作します! – jMike
それはあなたが実際に何のための正しい方法IST」小数
に1018と992と同等である0000001111101000 | 0000001111110010
0000001111101000 & 0000001111110010
ありがとう、私は今問題と結果を理解しています。 – jMike
を得ている。あなたが入れた10進数のバイナリ同等のものを使用していますJavaScriptのビット単位の計算ですか? – kjaquier
JavaScriptでのビット単位の操作が異常に遅いことに注意してください.JSは数値型では倍精度を使用しますが、変換するビット単位の意味では32ビットの整数を使用し、ビット単位の操作を行い、*毎回*に変換します。 –
@ kjaquier:いいえ! - 数値と同じ結果! – jMike