原码,反码,补码详解.pdfVIP

  • 1
  • 0
  • 约8.18千字
  • 约 5页
  • 2021-11-08 发布于重庆
  • 举报
本篇文章讲解了计算机的原码 , 反码和补码 . 并且进行了深入探求了为 何要使用反码和补码 , 以及更进一步的论证了为何可以用反码 , 补码的加法 计算原码的减法。 一 、机 器 数 和 真 值 在学习原码 , 反码和补码之前 , 需要先了解机器数和真值的概念。 1、机器数 一个数在计算机中的二进制表示形式 , 叫做这个数的机器数。机器数 是带符号的,在计算机用一个数的最高位存放符号 , 正数为 0, 负数为 1。 比如,十进制中的数 +3 ,计算机字长为 8 位,转换成二进制就是 。如果是 -3 ,就是 。 那么,这里的 和 就是机器数。 2、真值 因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如 上面的有符号数 ,其最高位 1 代表负,其真正数值是 -3 而不是 形式值 131 转换成十进制等于 131)。所以,为区别起见,将带 符号位的机器数对应的真正数值称为机器数的真值。 例: 0000 0001 的真值 = +000 0001 = +1 , 1000 0001 的真值 = – 000 0001 = –1 二 、 原 码 , 反 码 , 补 码 的 基 础 概 念 和 计算 方 法 在探求为何机器要使用补码之前 , 让我们先了解原码 , 反码和补码的概 念 . 对于一个数 , 计算机要使用一定的编码方式进行存储。 原码 , 反码 , 补 码是机器存储一个具体数字的编码方式。 1 、原码 原码就是符号位加上真值的绝对值 , 即用第一位表示符号 , 其余位表示 值。比如如果是 8 位二进制 : [+1] 原 = 0000 0001 [-1] 原 = 1000 0001 第一位是符号位, 因为第一位是符号位 , 所以 8 位二进制数的取值范 围就是 : [1111 1111 , 0111 1111] 即 [-127 , 127] 原码是人脑最容易理解和计算的表示方式。 2、反码 反码的表示方法是 : 正数的反码是其本身 负数的反码是在其原码的基础上 , 符号位不变,其余各个位取反。 [+1] = 原 = 反 [-1] = 原 = 反 可见如果一个反码表示的是负数 , 人脑无法直观的看出来它的数值 . 通 常要将其转换成原码再计算。 3、补码 补码的表示方法是 : 正数的补码就是其本身 负数的补码是在其原码的基础上 , 符号位不变 , 其余各位取反 , 最后 +1 。 ( 即在反码的基础上 +1) [+1] = 原 = 反 = 补 [-1] = 原 = 反 = 补 对于负数 , 补码表示方式也是人脑无法直观看出其数值的。 通常也需 要转换成原码在计算其数值。 三 、为 何 要 使 用 原 码 , 反 码 和 补

文档评论(0)

1亿VIP精品文档

相关文档