原码、反码和补码的理解

概述

       对于原码、反码和补码有了一些理解,分享给大家

真值

         正、负号加某进制数绝对值的形式成为真值

         例:X = +1011          Y = -1011


机器数

         符号数码化的数称为机器数

         机器数有四种表示方法:原码、补码、反码和移码。下面的描述添加为机器字长为8位二进制

 

原码

         最高位表示真值符号:0正,1负,且符号位不参与运算,计算机要实现原码加(擅长)和减的运算器

        注意:1000 00000000 0000都表示0,所以,取值范围为:[-127,127]

 

反码        

        最高位表示真值符号:0正,1负,且符号位不参与运算,计算机只需实现反码的加运算器,但需设计反码符号位和其它位分开的逻辑

        注意:1000 00000000 0000都表示0,所以,取值范围为:[-127,127]

 

补码

         最高位表示真值符号:0正,1负,符号位参与运算(“模”的概念)

          +0-0的表示: 0000 0000   -128的表示:10000000

 

补码的表示范围[-128,127]的解释

         补码使计算机对所有数据的表示唯一化,+0-0表示都用的是高位为0128中排序中的同一种排序(00000000),所以,剩下的127中排序最大可以表示正整数为127,又因最高位为1的排序有128种,所以,可表示的最小负数为-128

 

原码、反码和补码之间的转换

         正数:三者相同

         负数:原码对应的反码为,原码各位取反(除符号位)

                     反码对应的补码为,反码+1

                     补码对应的反码为,补码各位取反(除符号位)+1

                     

         注意:由于原码和反码根本就不存在-128的表示,所以,当说到-128时,就不能有这种转换,至于计算机是如何将-128真值转换为补码,或者说为,计算机是如何将真值转换为补码的?我们无序了解,这个就是为什么上面没有写反码和补码的得到方式(我们通常错误的理解得到方式是其三者的转换关系),可能你会说,-128补码我只能死记硬背了吗?其实不然,只要我们求出补码表示-18位二进制的排列方式,我们就可以推出-128的补码,不明白知道-1的补码为什么就可以推出-128的补码的,可以看看上面“补码的表示范围[-128127]的解释”的描述


总结

       对于原码、反码和补码的产生的原因,以及原码、反码和补码各自的内容,以及之间的关系上面都以讲出,认真看的话,可以帮助你理解一些内容。

    

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值