/**
* 求一个数字的补码
*/
public class IntNumber {
public static void main(String[] args) {
int a = -10;
for (int i = 0; i<32;i++) {
int t = (a & 0x80000000>>>i)>>>(31-i);
System.out.print(t);
}
}
}
这段程序的基本思想是:进行32次循环(因为int有32为),每次循环取出int值中的一位,第3行的0x80000000是一个首位为1,其余位为0的整数,通过右移i位,定位到要获取的第i位,并将除该位外的其他位同一设置为0,而该位不变,最后将该位移至最右,并进行输出。