原码 反码 补码,补码的意义及由来 | 您所在的位置:网站首页 › 什么是反码和补码的转换过程 › 原码 反码 补码,补码的意义及由来 |
![]() 计算机用二进制存储数据。一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用机器数的最高位存放符号,正数为0,负数为1。 一般计算机的字长为8位,最高位为符号位。十进制数3转化为机器数就是 00000011 ,十进制数-5转化为机器数就是 10000101 。 由于符号位的存在,机器数10000101的真实值是-3,而不是形式值133。因此为了区别形式值和真实值,将规定符号位的机器数的真实数值称为机器数的真值。 2.原码 反码 原码:原码就是符号位加上真值的绝对值。 例子:3的原码为:00000011 -4的原码为:10000100 反码:正数的反码是其本身 负数的反码:符号位不变,其余位取反 例子:-4的反码:11111011 3.补码的计算,由来和意义计算机在执行计算时,只对机器数进行加法运算。不用减法运算的原因是,设计减法运算会使得电路变得繁琐。同时由于符号位的特性,如果设计电路识别符号位,电路的复杂程度更会大幅上升。所以人们想出了一个好方法。如计算1-2时,将其转化为1+(-2)来计算,就同时优化掉了减法操作和对符号位的识别。具体的计算依靠的便是补码。 补码的计算:正数的补码是其本身。 负数的补码是其反码+1。 例子:-4的补码:11111011+1=11111100 注意:这不是补码的定义,仅是补码的计算方式 补码的意义及由来:在计算机器数的减法时,直接使用原码是不行的。如5+(-3):00000101+10000011,结果为10001000,显然错误了。于是补码就应运而生。举个钟表的例子吧。 有一个不同的钟表,长这样:
加法计算中的7是怎么来的呢?7=12-5,12可以简单理解成进位,即最大值+1。 所以 举个三位二进制数的例子。如果要求101-010(5-2),我们可以转换成5+(8-6)即101+110.这里,010就是110的补码 我们可以来计算一下。110取反,即111-110=001,为110的反码。按照补码的计算,反码加一,也即111-110+001,调换顺序,111+001-110.加粗的部分刚好就是模的大小(8)所以这就是补码的来历,即凑出形似8-6的格式来完成减法的计算。这就是补码的由来 补码的真正定义
|
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |