求一个数字的补码

/**
 * 求一个数字的补码
 */
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,而该位不变,最后将该位移至最右,并进行输出。

posted @ 2021-04-08 14:27  WK_BlogYard  阅读(96)  评论(0编辑  收藏  举报