一级域名做网站,电子商务网站开发开题报告,辽宁省工程新希望官网,百度电脑版官方下载颠倒给定的 32 位无符号整数的二进制位。 示例 1#xff1a;
输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596#xff0c; 因此返回 964176192…颠倒给定的 32 位无符号整数的二进制位。 示例 1
输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596 因此返回 964176192其二进制表示形式为 00111001011110000010100101000000。 示例 2
输入11111111111111111111111111111101 输出10111111111111111111111111111111 解释输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293 因此返回 3221225471 其二进制表示形式为 10101111110010110010011101101001。
提示
请注意在某些语言如 Java中没有无符号整数类型。在这种情况下输入和输出都将被指定为有符号整数类型并且不应影响您的实现因为无论整数是有符号的还是无符号的其内部的二进制表示形式都是相同的。 在 Java 中编译器使用二进制补码记法来表示有符号整数。因此在上面的 示例 2 中输入表示有符号整数 -3输出表示有符号整数 -1073741825。
思路就一个循环把变量n的每一位加到res即可。
public class Solution {public int reverseBits(int n) {int res 0;int count 0;while (count 32) {res 1; //res 左移一位res | (n 1); //最低位加过来n 1;//原数字右移一位}return res;}
}