原码反码补码

原码

原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负

例如:56的原码是00111000,第一个0是符号位,0111000是数据位
(8个数字是一个字节,最大是01111111,最小是111111111)

利用原码对正数进行计算是不会有问题的。
但是如果是负数计算,结果就出错,实际运算的结果,跟我们预期的结果是相反的。

例如:-0的原码是10000000,+1应该是1,但是结果是10000001

反码

反码:正数的补码反码是其本身,负数的反码是符号位保持不变,其余位取反
(反码本身为了解决原码不能计算负数的问题而出现的)

例如:-56原码是10111000,反码是11000111,-56+1就是在反码上+1,得到11001000就是-55的反码
负数做加法超过0会出现问题,跟实际有1的偏差,如-5+6,反码11111010+00000110=00000000,转成十进制结果为0,于是出现了补码

补码

补码:正数的补码是其本身,负数的补码是在其反码的基础上+1

补码还能多记录一个特殊的值-128,该数据在1个字节下,没有原码和反码。
计算机中的存储和计算都是以补码的形式进行的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值