Java——二进制原码、反码和补码

一、简要介绍

原码、反码和补码只是三种二进制不同的表示形式,每个二进制数都有这三个形式。

1、原码(True Form)

原码是将一个数的符号位和数值位分别表示的方法。

最高位为符号位,0表示正,1表示负,其余位表示数值的绝对值。

例如:

原码0000 0001        (1)D

原码1000 0001        (-1)D

2、反码(Ones' Complement)

反码是通过对二进制数逐位取反(0变1,1变0)得到的表示方法。正数的反码同其原码相同;负数的反码是其原码数值位逐位取反,符号位不变。

正数的反码同其原码相同,负数的反码是其原码数值位逐位取反,符号位不变。

正数

原码0000 0001        (1)D

反码0000 0001       (1)D

负数转反码,将数字位按位取反(原来为0变为1,原来为1变为0),符号位不变

负数

原码1000 0001        (-1)D

反码1111 1110        (-1)D

3、补码(Twos' Complement)

补码是通过对反码加1得到的表示方法。补码广泛用于计算机系统中,因为它简化了加减法运算。

正数的补码与反码一致,也与原码一致

也就是说正数的原码、反码和补码都是一样的。

正数

原码0000 0001        (1)D

补码0000 0001        (1)D

负数反码转补码,加一就可以得到补码

负数

反码1111 1110        (-1)D

补码1111 1111        (-1)D

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值