[LeetCode] 0190. リバースビット

リバースビット

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; } 戻り値;
				
			
ja日本語