计算机原理:二进制 原码 反码 补码

在计算机中,1byte=8位,若是无符号的情况下可表示的数字总个数为2^8=256个数,但是计算机只会进行加法运算例如:

5-4 =1     在计算机中的运算方式是  5+(-4)=1,故在计算机中要加入负数的概念,以方便加减法运算。

二进制的字符串中区分正负数,做了以下规定:最高位作为符号位  0表示正数   1表示负数

正数范围(补码) 0000 0000~0111 1111  0~127          

负数范围(补码) 1000 0000~1111 1111  -128~-1

共256个数(至于为什么是补码,后面会详细解释)

接下来介绍下 原码,反码,补码。为了能准确表达,以下规定正数的反码,补码都等于原码;负数的补码等于把反码加1

例如:

83       ~              原码   反码  补码  0 101 0011  

83……1

41……1

20……0

10……0

5……1

2……0

1……1

-83                                       ~原码1 101 0011

83……1                             ~反码1 010 1100

41……1                             ~补码1 010 1101

20……0

10……0

5……1

2……0

1……1

根据补码求真值:

为什么计算机中要以补码方式表示数值?解释如下:

首先要了解下什么是计数系统

  一个计数系统可以存多少容量状态的数,我叫它作为计数系统的Mod。一个计数系统不断地加一,那么它表示的数的状态也会周期性地变化,我叫这个周期的大小叫做Mod。

  举个例子:一个时钟显示十二个小时,时针旋转一周后回到原来的状态,即该系统的Mod为12。只要时针转360度(也就是12小时),就会和现在所在的数值一样。

  由此,可以得到一个结论。这种周期性变化的计数系统,一个状态加减整数倍的Mod,其状态不会有不会发生变化。

计算机能进行的运算只有加法故需:变减为加

  在计算机中使用加法器对数据进行计算,那么如何进行减法的运算呢?

  设Mod=32

  若a=3,b=-4,则a+b=a+b+Mod=-1+Mod=a+(Mod-4)=31(在计数系统中-1和31等价)

  实际上Mod-4就是b的补数,所有的减法在计算机中都可以转化为加上减数的补数,对应计算机上的概念就是补码。

  因此,计算机是使用补码(补数)进行计算。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值