[ビット演算-簡単]190。2進数を逆にします(1行のコード、明日ビット演算ソリューションを追加します)

[タイトル]
指定された32ビットの符号なし整数の2進ビットを逆にします。
[例1]
入力:00000010100101000001111010011100
出力:00111001011110000010100101000000
説明:入力バイナリ文字列00000010100101000001111010011100は符号なし整数43261596を表す
ため、964176192を返し、そのバイナリ表現は00111001011110000010100101000000です。
[実施例2]
入力:11111111111111111111111111111111
出力:10111111111111111111111111111111
説明:入力バイナリ文字列3221225471が返され、そのバイナリ表現が10111111111111111111111111111されるよう11111111111111111111111111111101は、符号なし整数4294967293を表す
[ヒント]
の注意(Javaなどの)いくつかの言語でその符号付き整数型はありません。この場合、入力と出力の両方が符号付き整数型として指定され、整数が符号付きか符号なしかに関係なく内部バイナリ表現が同じであるため、実装に影響を与えることはありません。
Javaでは、コンパイラは2の補数表記を使用して符号付き整数を表します。したがって、上記の例2では、​​入力は符号付き整数-3を表し、出力は符号付き整数-1073741825を表します。
[コード]
[Python]
[1行のコード]
ここに画像の説明を挿入

class Solution:
    def reverseBits(self, n: int) -> int:
        return int(("{0:0>32}".format(bin(n)[2:]))[::-1],2)

おすすめ

転載: blog.csdn.net/kz_java/article/details/115101151