💡

190. Reverse Bits

に公開

与えられた 32 ビットの符号なし整数のビットを反転してください。

注意:

Java などの一部の言語では、符号なし整数型が存在しません。この場合、入力および出力は符号付き整数型として与えられます。しかし、整数の内部の2進数表現は符号付きでも符号なしでも同じであるため、実装には影響しません。
Javaでは、コンパイラが2の補数表現を用いて符号付き整数を表します。したがって、上記の例2では、入力は符号付き整数 -3 を表し、出力は符号付き整数 -1073741825 を表します。


例 1:

入力:
n = 00000010100101000001111010011100
出力:
964176192(= 00111001011110000010100101000000

説明:
入力の2進数文字列 00000010100101000001111010011100 は、符号なし整数 43261596 を表します。これをビット反転すると 00111001011110000010100101000000 となり、10進数で 964176192 になります。


例 2:

入力:
n = 11111111111111111111111111111101
出力:
3221225471(= 10111111111111111111111111111111

説明:
入力の2進数文字列 11111111111111111111111111111101 は、符号なし整数 4294967293 を表します。これをビット反転すると 10111111111111111111111111111111 となり、10進数で 3221225471 になります。


制約:

  • 入力は長さ32の2進数文字列でなければなりません。

Discussion