补码表示法(0, 您所在的位置:网站首页 补码和移码对零的表示形式都只有一种 补码表示法(0,

补码表示法(0,

2024-07-10 16:36| 来源: 网络整理| 查看: 265

关于计算机内部定点整数表示方法,有很多种文章都有总结,但是仍然不能很好地解决初学者的困惑,为此在这里用图表说明一下

1、这里以8个二进制位为例,实际上计算机内部有16位(2字节)、32位(4字节)等数据类型。

2、还有定点整数在计算机中都是以补码形式表示的(正整数原码、反码和补码相等,负整数用补码表示),这里为        了说明原码、补码、反码的相互之间的关系而假设计算机内部采用了原码、反码表示,实际上这是不存在的。

下面我们来看一下表格吧:

看完这个表格相信大家对这些补码、反码、原码不在迷惑了吧。让我们来看一下值得注意的几个问题:

1、这里我们先不管数据的实际大小,反正在这八个二进制位都是写进去0或1,于是这八个二进制位共有2^8=256个         排列组合,所以最多能表示256个数据,至于怎么表示,这就是补码、反码、原码研究的问题了,注意表格中的二       进制数是按顺序从00000000到11111111渐变的这就涵盖了所有的256中组合,下面让我们具体分析下:

2、当二进制数的d7位为0时,把这些数据还原成十进制会发现,无论把这些二进制数据看成补码、原码或反码结果都       是一样的,这正是因为正整数的原码、补码和反码相同的体现,大家还发现了一个问题,为什么表格的B、C列表       示0时用+0,呢?先放下这个问题,我们向下看。

3、当渐变到10000000时我们发现数据发生了突变而且表格后面三列的数据也不相同了,这是因为高位是1无论在原         码、反码还是补码中都表示负数,而负数的原码、反码、补码是各不相同的。

4、继续向下看数据都是渐变的了不同的是A列是从-128  ~  -1,B列从-0  ~  -127,C列是从-127  ~  -0,从中我们不难         发现A列即补码表示的范围中没有+0,-0之说,而原码、反码中则区分开了-0和+0,显然浪费掉一个存储数据的情       况,A列保存的数据是-128  ~  127共256个,B、C列保存的-127  ~  127外加一个重复的情况共256个



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有