机器数的原码、反码和补码
发布时间:2016/7/4 22:02:20 访问次数:1839
1.原码
将机器数真值形式中的最高位用“0”表示“+”号,用“l”表示“-”号,这种数DSS60-0045B码形式叫做原码。当X为正数时,lX]原=Xo当X为负数时,将|X|数值部分绝对值前面的符号位上写成“1”即可。如:
X1=69 [X刂原=01000101
X2=ˉ69 [X2]原=11000101
原码表示法比较直观,其数值部分就是该数的绝对值,而且与真值、十进制数的转换十分方便。但是用原码进行加减运算时,因符号位不能与数值部分一起参加运算,而必须利用单独的线路确定符号位,造成运算电路变得很复杂,由此提出了反码和补码的概念。
2.反码
如果是正数,其反码和原码的形式相同;如果是负数,其反码为原码的数值部分按位取反,符号位保持不变。如:
X1=69 [X1]反=01000101
X2=ˉ69 [X2]反=I0111010
在反码中,数值0有两种形式,对于8位数来说:
[+0]反=00000000 [-0]反=11111111
3.补码
补码是根据补数的概念引入的,假定现在的时间为6点整,而手表却是8点整。手表校准的方法有两种,一种是倒拨2小时,可以理解为减法运算(”),一种是正拨10小时,可以理解为加法运算(Hω,那么对校准手表来讲,减2与加10是等价的,也就是说,减2可以用加10来实现。这是因为8加10等于18,然而手表最大只能表示12,当大于12时进位自然丢失,18减去12就只剩6了。这说明减法在一定条件下,是可以用加法来代替的。在以上例程中“12”称为“模”,“H0”称为“9”对模12的补数。假设X为刀位二进制数,则其模为/,因此X的补码可表示为
[X]补=2″+X
对于二进制数的补码求解可分为正数和负数分别讨论。
1.原码
将机器数真值形式中的最高位用“0”表示“+”号,用“l”表示“-”号,这种数DSS60-0045B码形式叫做原码。当X为正数时,lX]原=Xo当X为负数时,将|X|数值部分绝对值前面的符号位上写成“1”即可。如:
X1=69 [X刂原=01000101
X2=ˉ69 [X2]原=11000101
原码表示法比较直观,其数值部分就是该数的绝对值,而且与真值、十进制数的转换十分方便。但是用原码进行加减运算时,因符号位不能与数值部分一起参加运算,而必须利用单独的线路确定符号位,造成运算电路变得很复杂,由此提出了反码和补码的概念。
2.反码
如果是正数,其反码和原码的形式相同;如果是负数,其反码为原码的数值部分按位取反,符号位保持不变。如:
X1=69 [X1]反=01000101
X2=ˉ69 [X2]反=I0111010
在反码中,数值0有两种形式,对于8位数来说:
[+0]反=00000000 [-0]反=11111111
3.补码
补码是根据补数的概念引入的,假定现在的时间为6点整,而手表却是8点整。手表校准的方法有两种,一种是倒拨2小时,可以理解为减法运算(”),一种是正拨10小时,可以理解为加法运算(Hω,那么对校准手表来讲,减2与加10是等价的,也就是说,减2可以用加10来实现。这是因为8加10等于18,然而手表最大只能表示12,当大于12时进位自然丢失,18减去12就只剩6了。这说明减法在一定条件下,是可以用加法来代替的。在以上例程中“12”称为“模”,“H0”称为“9”对模12的补数。假设X为刀位二进制数,则其模为/,因此X的补码可表示为
[X]补=2″+X
对于二进制数的补码求解可分为正数和负数分别讨论。