7.整数反转
class Solution {
public int reverse(int x) {
int res=0;
while(x!=0)
{
if(x>0 && res > (Integer.MAX_VALUE-x%10)/10 ) //因为结果超出int的范围后会溢出,得到的值不是最终的结果,所以对这种情况进行预防
return 0;
if(x<0 && res < (Integer.MIN_VALUE-x%10)/10)
return 0;
res = res*10 + x % 10;
x /= 10;
}
return res;
}
}
190.颠倒二进制位
public class Solution {
// you need treat n as an unsigned value
public int reverseBits(int n) {
int res=0;
for(int i=0;i<32;i++)
{
if (((n >> i) & 1) == 1) {//因为输入的是一个int型数字n,所以使用(n>>i)&1来判断n对应的二进制数的每一位是否位1,因为判断的顺序是从后之前,所以可以直接进行计算,来得到最终的结果
res |= (1 << (31 - i));
}
}
return res;
}
}