原码、反码、补码、移码的表示

原码、反码、补码、移码的表示_第1张图片

 若字长n为8时,那么45的二进制表示0 0101101  ,若数值X

1.原码 [X]原,在二进制数值中,正数保持不变,负数符号位置1.

2.反码 [X]反,的正数保持不变 , 负数对数值的绝对值每一位按位求反

3.补码 [X]补,的正数不变,负数在反码末位加1

4.移码 [X]移, 在偏移2^(n-1)情况下,在补码的基础上首位取反 。在偏移 N 的情况下 移码=真值 + 偏移量

 例如:其中 ♦ 代表小数点位置
   +1 =   0 0000001(原) = 0 0000001(反) = 0 0000001(补) = 1 0000001(移)

   -1  =  1 0000001(原) = 1 1111110(反) = 1 1111111(补) = 0 1111111(移)

   +45 =0 0101101(原) =0 0101101(反) =0 0101101(补) =1 0101101(移)

   -45 = 1 0101101(原) =1 1010010(反) =1 1010011(补) =0 1010011(移)

  +127 =0 1111111(原) =0 1111111(反) =0 1111111(补) =1 1111111(移)

 -127 =1 1111111(原) =1 0000000(反) =1 0000001(补) =0 0000001(移)

+0.5 =0♦1000000(原)=0♦1000000(反) =0♦1000000(补) 

-0.5 =1♦1000000(原)=1♦0111111(反) =1♦1000000(补) 

浮点数 的IEEE 754表示:

在十进制中,83.125 可以写成 10^3 × 0.083125  也可以写成 01010011.001 及 2^6 ×1.010011 .在N = 2^E × F  形式中, E称之为 阶码  ,F 称为 尾数。 工业  IEEE 754  表示格式为

   (-1) ^S    2^E   (b0 b1 b2 b3 .... )     ,其中(-1) ^S  表示数符, S为0为正数,1 为负数

参数   单精度  双精度
字长 32 (4字节) 64 (8字节)
尾数长度 23 52
指数长度 8 11
指数偏移量  +127  +1023
可表示的数值范围 10^-38 ~10^38 10^-308 ~10^308

在  IEEE 754  表示中 ,阶码  = 指数  + 偏移量   ,尾数表示成 b0 b1 b2 b3 ......其中b0为1,表示时省略。

对于 单精度的   83.125 ,表示成  2^6 ×1.010011  , 指数为6 , 单精度的偏移量为 127(即2^7 -1)所以,阶码为  6+127   =133   =( 10000101)  尾数 为1♦01001100000000000000000 ,把小数点省去得到 IEEE754表示法中的 83.125 表示 为:

        0   10000101  01001100000000000000000

对于 单精度 176.0625  的IEEE 754 表示: 

1)首先转成二进制  

         (176.0625)_{10} = (10110000.001)_{2}

2)规格化处理

      10110000.0001 =  1♦01100000001  ×   2^7

3)阶码

    指数为7,单精度的偏移量127,所以阶码 在 指数7上加127,  E=7+127 = 134 ,阶码即为指数的阶码:  10000110 .

    最后,可得到   0 10000110 01100000001000000000000

4)浮点数间的加减法

首先需要"对阶",即加减法时的两个数的阶码化成一致,阶码小的化成于阶码大的一致,然后再尾数二进制加减

例如  0.5 + (-0.4375) = 1♦000 ×   2^(-1)       +    -1♦110 ×   2^(-2)

                                  = 1♦000 ×   2^(-1)       +    -0♦111 ×   2^(-1)

                                  =0♦001  ×   2^(-1)    = 1♦000  ×   2^(-4) 

你可能感兴趣的:(计算机组成,软考——软件设计师,系统架构设计师,原码,移码,补码,反码,计算机)