Python、C++、JavaScript、SQL、TypeScript の多様な LeetCode ソリューションを探索してください。面接の準備、学習、複数のプログラミング言語でのコードの練習に最適です。 Github リポジトリ リンク
指定された 32 ビット符号なし整数のビットを反転します。
注記:
- Java などの一部の言語では、符号なし整数型が存在しないことに注意してください。この場合、整数の内部バイナリ表現は同じであるため、入力と出力は両方とも符号付き整数型として与えられます。署名されているかどうかに関係なく。
- Java では、コンパイラは次を使用して符号付き整数を表します。 2の補数表記したがって、 例 2 上では、入力は符号付き整数を表します
-3
出力は符号付き整数を表します-1073741825
.
例 1:
入力: n = 00000010100101000001111010011100 出力: 964176192 (00111001011110000010100101000000) 説明: 入力バイナリ文字列 00000010100101000001111010011100 は符号なし整数 43261596 を表すため、バイナリ表現である 964176192 を返します。 00111001011110000010100101000000.
例 2:
入力: n = 11111111111111111111111111111101 出力: 3221225471 (10111111111111111111111111111111) 説明: 入力バイナリ文字列 11111111111111111111111111111101 は符号なし整数 4294967293 を表すため、バイナリ表現である 3221225471 を返します。 10111111111111111111111111111111.
制約:
- 入力は次でなければなりません バイナリ文字列 長さの
32
フォローアップ: この関数が何度も呼び出される場合、どのように最適化しますか?
パイソン
class Solution { public: uint32_t reverseBits(uint32_t n) { uint32_t ret = 0, power = 31; while (n != 0) { ret += (n & 1) << power; = 1; } 戻り値;