原码 反码 补码的初步理解

     原码 反码 补码初步理解

      所有带符号数据在计算机中是以补码的方式存储的,这是因为①计算机只能用二进制数来存储数据(即0 1)  而计算机在日常中给我们输出数据的时候是以原码的方式来表达的。②计算机在cpu中的加法器只能计算补码,而原码,反码的计算都不对。

 

在计算机中一个最小的存储单元是1byte=8bit(位)

 

原码  最高位用0表示正数 1表示负数 其余七位用该数的绝对值的二进制表示。

原码10(十进制) 0000 1010(二进制)

   -10(十进制) 1000 1010(二进制)

反码  正数的反码与原码一致,而负数的反码  最高位(符号位)不变 其余的按位取反。

反码10(十进制) 0000 1010(二进制)

   -10(十进制) 1111 0101(二进制)

补码 正数的补码与原码一致 而负数的补码则为该数的反码加1.

补码10(十进制) 0000 1010(十进制)

   -10(十进制) 1111 0101(二进制)

计算一下10-6

-6的原码  1000 0110

    反码  1111 1001

    补码  1111 1010

先用原码计算10-6=16  错误

 0000 1010

 1000 0110

——————

 1001 0000  

反码计算10-6=3  错误

 0000 1010

 1111 1001

——————

 0000 0011

补码计算 10-6=4   正确

 0000 1010

 1111 1010

——————

 0000 0100

即只有补码计算正确

补码运算得到的值 还是 补码;需要把补码转变为原码。补码的补码就是原码。

 

1byte=8bit  2的8次方等于256(0—255)

把它分成两部分 0—127表示正数               128—255表示负数(-128— -1)表示负数

有意思的是

128的二进制 1000 0000

         反 1111 1111

         补 0000 0000

而0 的二进制 0000 0000

         反  0000 0000

         补  0000 0000

128的补码和0的补码冲突了  违反了计算机的二义性  。

所以128 没有反码 原码 补码 -128的没有反码 原码和补码都是

1000 0000

注 补码的范围是 -128—127。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值