题目链接:https://leetcode.com/problems/reverse-bits/
将一个无符号整型数的二进制表达做对称变换,输出逆转后二进制表达对应的十进制
思路:对于一个二进制表达的数,逐个取每一位上的数,然后将i位置上的1或者0转到32-i位置上,
取末尾位上的数只要:tail=n&1
代码如下:
public class Solution {
// you need treat n as an unsigned value
public int reverseBits(int n) {
int ret=0;
for(int i=0;i<32;i++)
{
int tail=n&1;
ret+=tail<<(31-i);
n>>=1;
}
return ret;
}
}