如何找做网站的客户,毕业设计做网站怎样做特别一点,免费ppt模板下载第一ppt,网络广告推广颠倒给定的 32 位无符号整数的二进制位。
提示#xff1a;
请注意#xff0c;在某些语言#xff08;如 Java#xff09;中#xff0c;没有无符号整数类型。在这种情况下#xff0c;输入和输出都将被指定为有符号整数类型#xff0c;并且不应影响您的实现#xff0c;因…颠倒给定的 32 位无符号整数的二进制位。
提示
请注意在某些语言如 Java中没有无符号整数类型。在这种情况下输入和输出都将被指定为有符号整数类型并且不应影响您的实现因为无论整数是有符号的还是无符号的其内部的二进制表示形式都是相同的。在 Java 中编译器使用二进制补码记法来表示有符号整数。因此在 示例 2 中输入表示有符号整数 -3输出表示有符号整数 -1073741825。
思路一位运算
c解法
class Solution {
public:uint32_t reverseBits(uint32_t n) {uint32_t rev 0;for (int i 0; i 32 n 0; i) {rev | (n 1) (31 - i);n 1;}return rev;}
};
分析
本题要将原给定的二进制位颠倒可以利用位运算的方法将原来的数最后的数移到左边不断向右移直到将数完全颠倒过来为止
总结
本题考察对位运算的应用利用左右移来将二进制数颠倒