Java——原码、反码、补码、位运算。

本文介绍了原码、反码和补码的概念及其在Java中的应用,包括位运算符如与、或、异或和取反,以及为何重写equals方法时需重写hashCode方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  Java中的位运算是对二进制数进行的运算,常见的位运算符包括与(&)、或(|)、异或(^)、取反(~)等。反码和补码是计算机中表示负数的方式,反码是将数值的二进制表示中的0和1互换,补码是在反码的基础上加1。

一、原码、反码、补码

1. 原码

原码数值的二进制表示其中第一位表示符号, 其余位表示值,正数符号位为0,负数符号位为1,下面用1为例
+1 : 00000001
-1 : 1000001

2. 反码

正数的反码是其原码本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反
+1:0000 0001
-1:1111 1110

3. 补码

正数的补码就是其原码本身,负数的补码是在其原码的基础上,符号位不变, 其余各位取反,最后+1。
+1:0000 0001
-1:1111 1111

二、在Java中的使用

public class BitwiseOperations {
    public static void main(String[] args) {
        int a = 5; // 二进制表示为 0000 0101
        int b = 3; // 二进制表示为 0000 0011

        // 与(&)运算
        int resultAnd = a & b; // 结果为 0000 0001,即1
        System.out.println("与(&)运算结果:" + resultAnd);

        // 或(|)运算
        int resultOr = a | b; // 结果为 0000 0111,即7
        System.out.println("或(|)运算结果:" + resultOr);

        // 异或(^)运算
        int resultXor = a ^ b; // 结果为 0000 0110,即6
        System.out.println("异或(^)运算结果:" + resultXor);

        // 取反(~)运算
        int resultNotA = ~a; // 结果为 1111 1010,即-6
        System.out.println("取反(~)运算结果:" + resultNotA);

        // 计算反码和补码
        int negativeNumber = -5; // 要表示的负数
        int complement = ~negativeNumber + 1; // 计算补码
        System.out.println("负数的补码表示:" + complement);
    }
}



上一篇 为什么说重写equals方法也要重写hashCode方法。
欢迎点赞、收藏、评论!!!
下一篇 Java原生定时任务的实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值