动手动脑问题

  1. 原码:最高位是符号位(0表示正数,1表示负数),其余位表示数值的绝对值。

  2. 反码:正数的反码与原码相同,负数的反码是对其原码按位取反(符号位除外)得到的结果。

  3. 补码:正数的补码与原码相同,负数的补码是对其原码按位取反(符号位除外),然后将结果加1。

在Java中,整数默认使用补码表示。

下面是一个示例程序,对正数和负数进行位操作,并输出结果:

public class BitwiseOperations {
    public static void main(String[] args) {
        int a = 5; // 正数
        int b = -3; // 负数

        // 与操作
        int andResult = a & b;
        System.out.println("AND结果:" + andResult);

        // 或操作
        int orResult = a | b;
        System.out.println("OR结果:" + orResult);

        // 异或操作
        int xorResult = a ^ b;
        System.out.println("XOR结果:" + xorResult);

        // 左移操作
        int leftShiftResult = a << 2;
        System.out.println("左移结果:" + leftShiftResult);

        // 右移操作
        int rightShiftResult = b >> 1;
        System.out.println("右移结果:" + rightShiftResult);

        // 无符号右移操作
        int unsignedRightShiftResult = b >>> 1;
        System.out.println("无符号右移结果:" + unsignedRightShiftResult);
    }
}

输出结果:

AND结果:1
OR结果:-3
XOR结果:-4
左移结果:20
右移结果:-2
无符号右移结果:2147483646
Java中的数是采用补码表示的。
posted @ 2023-09-15 10:10  *太¥^白%  阅读(81)  评论(0编辑  收藏  举报