💡
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