JavaScript で整数をバイナリに変換するにはどうすればいいですか? 質問する

JavaScript で整数をバイナリに変換するにはどうすればいいですか? 質問する

正または負の整数を 2 進数で表示したいと思います。

むしろこの質問ただし、JavaScript 用です。

ベストアンサー1

function dec2bin(dec) {
  return (dec >>> 0).toString(2);
}

console.log(dec2bin(1)); // 1
console.log(dec2bin(-1)); // 11111111111111111111111111111111
console.log(dec2bin(256)); // 100000000
console.log(dec2bin(-256)); // 11111111111111111111111100000000

使用できますNumber.toString(2)関数ですが、負の数を表すときにいくつか問題があります。たとえば、(-1).toString(2)出力は です"-1"

この問題を解決するには、符号なし右シフトビット演算子(>>>) を使用して、数値を符号なし整数に強制変換します。

実行すると、(-1 >>> 0).toString(2)数値が 0 ビット右にシフトされます。数値自体は変更されませんが、符号なし整数として表されます。上記のコードは"11111111111111111111111111111111"正しく出力されます。

この質問さらに詳しい説明があります。

-3 >>> 0(右論理シフト) は引数を符号なし整数に強制変換します。そのため、-3 の 32 ビットの 2 の補数表現が得られます。

おすすめ記事