二进制的原码、反码、补码

目录

二进制有原码、反码、补码的存在形式

1、 原码

2、反码

3、补码


首先,我们要知道计算机只识别0、1编码,也就是我们说的二进制。

因此,计算机中的所有数据都是以二进制的补码形式存在,并参与运算的。

那我们为什么要用补码形式呢?,补码又是什么呢?

二进制有原码、反码、补码的存在形式

1、 原码

因为有正数、负数的存在,所以计算机在存储时需要判断存入的数的符号,在计算机中,正数的符号位是0,负数的符号位是1

例如 :byte 1 的原码 = 00000001    -1的原码 = 10000001 

1  - 1 = ?用二进制进行推算。

在计算机中只存在加法器,因此1 - 1 === 1 +(-1)转化为二进制

00000001
10000001
10000010 = -2 

1 - 1 = -2 这个值显然是不对头的,为了解决这个问题,反码出现了。

2、反码

反码是在原码的基础上进行变化的,正数的反码和原码一样,负数的反码是对原码除符号位进行取反

例如 :1 的反码 = 1的原码 = 00000001  -1 的反码 = 11111110

00000001
11111110
11111111  反码
10000000  -0 原码

根据反码运算 1 - 1 = -0 ,那么在反码中就存在了对0 两种表达方式 -0 10000000  和 0 00000000,这也存在模糊,所以,补码出现了。

3、补码

补码是在反码的基础上再次进行转化,正数的原码 、 反码、补码都是同一种形式,负数的补码是在反码的基础上 +1

例如 :-1的补码 = 11111110 + 1 = 11111111

00000001
11111111
00000000 0 补码  产生溢出,最高位舍去  
                 正数的原码、反码、补码都相同

所以得到 1 - 1 = 0 的唯一正确结果。

因此,计算机中的二进制都以补码的形式参与运算和存储。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值