Difficulty: 简单
颠倒给定的 32 位无符号整数的二进制位。
示例 1:
输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。``` **示例 2:** 输入:11111111111111111111111111111101 输出:10111111111111111111111111111111 解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293, 因此返回 3221225471 其二进制表示形式为 10101111110010110010011101101001。```Language: Java 思路
1.将给定的二进制数,由低到高位逐个取出 2.然后通过位运算将其放置到反转后的位置. 3.将上述结果再次通过运算结合到一起
public class Solution { // you need treat n as an unsigned value public int reverseBits(int n) { int i = 32; int ans = 0; while (i-- != 0) { ans <<= 1; ans += n & 1; n = n >> 1; } return ans; } }