二进制表示法 0,-128的补码详解

补码表示法(0,

-128详解)

阅读原文点击(csdn 博文)

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

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个。

补码表示法(0,

-128详解)

阅读原文点击(csdn 博文)

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

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个。


相关文章

  • 原码反码和补码
  • 原码, 反码和补码 本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算 ...查看


  • 二进制中正负数表示和判断
  • 二进制中第一位0代表正:1代表负我知道,但是给你一个二进制的数比如101 那么转化成十进制应该是多少? 5? 但不是说首位为1应该是负的吗??? 谁能给我讲讲这个首位什么时候作为符号,什么时候作为数字去计算?什么时候可以直接计算,什么时候需 ...查看


  • 八位二进制数为什么表示范围是
  • 八位二进制数为什么表示范围是:-128~~+127 计算机对带符号数的表示有三种方法:原码.反码和补码 8位原码和反码能够表示数的范围是-127~127 8位补码能够表示数的范围是 -128~127 所以既然范围是-128~127,那肯定是 ...查看


  • 原码.反码.补码,计算机中负数的表示
  • 原码:将一个整数,转换成二进制,就是其原码.如单字节的5的原码为:0000 0101:-5的原码为1000 0101. 反码:正数的反码就是其原码:负数的反码是将原码中,除符号位以外,每一位取反.如单字节的5的反码为:0000 0101:- ...查看


  • (计算机原理会考试题库)
  • <计算机组成与工作原理>试题库 教材 <计算机组成与工作原理> 电子工业出版社 刘晓川 主编 一.选择题 [0102A] 1.计算机直接存储器存取传送方式就是( ). A .程序查询方式 B.中断处理方式 C .DM ...查看


  • 计算机组成原理和系统结构课后答案
  • 1.1 概述数字计算机的发展经过了哪几个代?各代的基本特征是什么? 略. 1.2 你学习计算机知识后,准备做哪方面的应用? 略. 1.3 试举一个你所熟悉的计算机应用例子. 略. 1.4 计算机通常有哪些分类方法?你比较了解的有哪些类型的计 ...查看


  • 第二章微机原理习题答案
  • 微机原理课后问题解答 第二章习题答案 一. 将下列十进制数转换成二进制数. (1)36 (2)0.628 (3)129.313 (4)1000 答:(1)100100 (2)0.1010 (3)129.313 (4)1111101000 二 ...查看


  • 微机原理课
  • 微机原理 课 1 讲 教 案 绪论 §1-1 计算机的发展概况及分类 §1-1-1 计算机的发展概况 1946年,第一台计算机在美国诞生,至今已有近60年的历史.60年来,计算机经历了 迅猛的发展,得到了广泛的普及,对整个社会的进步和科学的 ...查看


  • 信息的表示与存储
  • 1.4信息的表示与存储 计算机加工的对象是数据信息,而指挥计算机操作的是控制信息,因此计算机内部的信息可以分成二大类: ┌ 指令 ┌ 控制信息 ─┤ │ └ 控制字 信息 ┤ │ ┌ 定点数 │ ┌ 数值信息 ─┤ └ 数据信息 ─┤ └ ...查看


热门内容