原码,反码,补码

  如果大家接触过二进制,就一定会听说过这些概念,然后估计会有百分之50以上的人,对这三个概念的理解不是很深刻,所以我在这里给大家说一下。

 原码

原码就是符号伪加上真值的绝对值,即用第一位表示符号,其余为表示值。如果是8位1个字节的二进制

[+1]原=0000 0001

[-1]原=1000 0001

第一位是符号位,因为第一位是符号位了,所以8位的二进制数的取值范围就是:

[1111 1111,0111 1111]  也就是[-127,127]

反码

正数的反码就是它本身

负数的反码,就是在正数的基础上,各位取反。

[+1]原=0000 0001     [-1]反=1111 1110

补码

正数的补码就是它本身

负数的补码是在反码的基础上+1

[+1]原=0000 0001     [-1]补=1111 1111

为什么要有这3个东西?

我觉得吧,原码,是最适合人的大脑思考用的,因为后面出现了1-1=0,该怎么算,拿原码来说 0000 0001+1000 0001=10000010=-2,很显然是不对的,然后出现了反码,反码1-1=0,该怎么算, [0000 0001]反 + [1111 1110]反 = [1111 1111]反 = [1000 0000]原 = -0,然后出现了最后的补码,补码就解决了这个问题0用[0000 0000]表示1-1 = 1 + (-1) =[0000 0001]补 + [1111 1111]补 = [0000 0000]补=[0000 0000]原=0,如果想算使结果为0,就必须要用补码实现。如果结果不为0的运算同样可以使用补码在得到正确结果,还有,当结果为负数时,计算结果也要用补码的形式表示。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值