本文中,主机频道详细介绍了“计算机组成原理机号的概念和转换方法是什么”。内容详细,步骤清晰,细节处理得当。希望这篇文章《计算机组成原理机号的概念和换算方法是什么》能帮你解决疑惑。让我们抱着主机频道的想法一起学习新知识。
一、原码、反码、补码、移码的概念1。真理二进制数和十进制数一样都是正数。你可以用“+& quot;和“--& quot;代表数据的符号。这种写法叫做真值。
比如十进制的+3和-5,二进制的+011和-101都是真值。
2.机器号因为数据只有正负符号,所以在计算机中用二进制0和1来表示数据的符号是很自然的。用符号和数值编码的二进制数称为机器号或机器代码。常用的机号有原码、反码、补码和移位码。
比如:(这里的机器数是原码)1,0001表示符号位,1表示负数,符号位和数值位之间用逗号隔开,逗号后面是数值位。0001是二进制,所以转换成十进制后真值是-1;
再比如0,101代表的十进制数的真值是+5。
1.原码原码是一个符号值,其编码规则简单直观:正号位用0表示,负号位用1表示,数值位不变。
例如:
X=+0.1101,则[x]为0.1101;X=+1101,那么[x]等于01101。
X= -0.1111,则[x]等于1.1111;X= -1111,那么[x]等于11111。
源代码数据的表示简单直观,只需在符号位加上二进制数的绝对值即可。但是原码中有两个机器零,会给数据操作带来麻烦。另外,原码的加减运算比较复杂,符号位不能直接参与运算。加法运算需要“同号求和,异号差分”,减法运算需要“同善求和,同善差分”。计算差值时,需要先比较大小,然后从大数中减去小数,最后结果的符号选择相对复杂。显然,用原码作为机号来实现加减运算是不方便的。目前,原码在计算机中仅用于表示浮点数的尾码。
2.反码的反码也叫1的补码,其符号位与原码相同。当真值为正时,反码与原码相同;当真值为负时,逆代码数字是真值数字的逆。
例如:
X=+0.1101,则[x]anti = 0.1101;X=+1101,那么[x]就是逆=01101。
X= -0.1111,则[x]anti = 1.0000;X= -1111,那么[x]就是逆=10000。
逆码的符号位与原码相同。当真值为负值时,数值位需要逐位反转。同样,反码中也有两个零+0和-0。反码的加减运算比原码略简单,其符号位可以直接参与运算,加法运算可以简单地将反码相加,但最高位进位要从运算结果的最低位开始加(循环进位)。减法运算只需要将被减数的补数和被减数负数的补数相加,也采用循环进位的运算方式。然而,尽管如此,在现代计算机中,反码并不用于数据表示和运算,因为人们已经找到了更好的编码&;mdash& ampmdash补充
3.补码计算机中的二进制数据受字长限制,数据最高进位的位权是模,运算结果超过模的部分会自动丢弃,所以计算机二进制数据的运算是典型的模运算,非常适合用补码表示和运算。
例如:
X=+0.0101,则[x]补码= 0.0101;
X= -0.0101,则[x]补码= 1.1011;
X= -0.0000,则[x]补码= 0.0000;
X= -1.0000,则[x]补码= 1.0000;
补码的表示比原码复杂,但它只有一个唯一的0,符号位可以直接参与运算,运算过程中符号位的进位会作为一个模块自动丢弃。其独特的表示方法使得减法运算可以转化为加法运算,大大方便了二进制运算。目前计算机中广泛使用补码来表示有符号整数。
4.移码移码只用于表示定点整数,通常用于表示浮点数的顺序码。它的编码方法是直接给真值x加上一个常数偏移量。
例如:
X=+1010110,则[x]shift = 11010110;
X= -1010110,则[x]shift = 00101010;
代码移位具有以下特征:
(1)在码移位的符号位中,0表示负数,1表示正数;
②同值的移位码和补码除符号位相反外,其余相同;
③移帧中0的表示也是唯一的,具体是100000 &;hellip& amphellip。
2.原码、补码和移位码1的转换。原码到逆码当原码的真值为正时,逆码的机器数等于原码的机器数。
当原码真值为负时,反码的机器数等于原码的机器数(符号位不变)。
例如:
X=+0.1101,则[x]anti = 0.1101;X=+1101,那么[x]就是逆=01101。
X= -0.1111,则[x]anti = 1.0000;X= -1111,那么[x]就是逆=10000。
2.当原码的真值为正时,补码的机器数等于原码的机器数。
当原码真值为负时,补码的机器数等于原码的机器数,取反后加1(符号位不变)。
例如:
X=+0.0101,则[x]补码= 0.0101;
X= -0.0101,则[x]补码= 1.1011;
X= -0.0000,则[x]补码= 0.0000;
X= -1.0000,则[x]补码= 1.0000;
简单来说,原码加1的补码就是补码。
3.原码转码当原码的真值为正时,转码的机器数等于原码,但符号位需要改变。
当原码真值为负时,移码机数等于原码机数减加1(符号位为负)。
例如:
X=+1010110,则[x]shift = 11010110;
X= -1010110,则[x]shift = 00101010;
简单来说,就是原码的补码数不变,符号位反转就是码移位。
评论前必须登录!
注册