颠倒二进制位
描述:颠倒给定的 32 位无符号整数的二进制位。
难点:int所能存储的最大数值为
,因为可以使用long存储结果,之后转换成int即可
public class Solution { // you need treat n as an unsigned value public int reverseBits(int n) { long res = 0;//设置成long可以保留更大的数字 for(int i = 0; i < 32; i++){ int k = (n & 1) == 1 ? 1 : 0; res += Math.pow(2, 32 - 1 - i) * k; n >>>= 1; } return (int)res; } }