原码,补码和反码

为什么要了解这三种东西?

因为他和数据存储有关。

 

整数的二进制表示的三种形式:原码,补码和反码。

有符号的整数(signed int)的三种表示方法里面有符号位和数值位两部分,2进制序列里面,最高位是符号位,剩下的是数值位置。

符号位里面0是"正数",1是"负数"

①正整数:三种码一模一样

②负整数:三种码完全不一样

(1)原码:直接把数字换成二进制表示就是原码

(2)反码:顾名思义,把除了符号位数字其他全部反过来表示就是反码

(3)补码:反码+1就是补码

 

Eg1:数字10,在整型存储中占四个字节(32bit)所以其原码为:

00000000000000000000000000001010

其中,第一个bit表示这是正数,后面31为表示这是个10。

由于它是正整数,所以它原码反码补码均是这个东西表示。

Eg2:数字-10,其原码为:

10000000000000000000000000001010

那么它的反码:

11111111111111111111111111110101

那么它的补码:

11111111111111111111111111110110

 

整型在数据存放内存里面用的是补码:

使用补码可以将符号位和数值与统一处理。同时加减法可以统一处理(CPU只有加法器)。除此之外,补码和原码转换的运算过程相同,不需要其他硬件电路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卑微戏子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值