leetcode | 190逆ビット

与えられた32ビットの符号なし2進整数を逆転させました。

実施例1:
入力:00000010100101000001111010011100
出力:00111001011110000010100101000000を
説明:00000010100101000001111010011100入力バイナリストリング符号なし整数43261596、
00111001011110000010100101000000バイナリ表現であるリターン964176192を、。

例2:
入力:11111111111111111111111111111101
出力:10111111111111111111111111111111を
説明:入力バイナリ文字列を11111111111111111111111111111101 4294967293符号なし整数、
それはバイナリ表現として3221225471 10101111110010110010011101101001を返すように。

思考

O(N)の時間計算量は、空間的複雑度はO(1)です。

コード

public class Solution {
    // you need treat n as an unsigned value
    public int reverseBits(int n) {
        int ans = 0;
        for(int i = 0; i < 32; i++) {
            int temp = (n>>i & 1);
            ans |= temp << (31 - i);
        }
        return ans;
    }
}

リンク:https://leetcode-cn.com/problems/reverse-bits

おすすめ

転載: www.cnblogs.com/ustca/p/12307699.html