小数的补码反码

image-20220119165839638

二进制小数补码表示法

二进制小数的补码表示法和二进制的整数类似,同样分为两种情况:

  1. 1 > x >= 0x的补码就为x
  2. 0 > x > -1x的补码为2 + x
    例如x = 9/16,则x的原码以及补码为:
    1
    2
    3
    4
    5
    6
    7
    原码:x = 9/16 = 0 0.1001
    |
    符号位

    补码:x = 9/16 = 0 0.1001
    |
    符号位
    如果x = -11/32,则x的原码以及补码为:
    1
    2
    3
    4
    5
    原码:x = -11/32 = 1 0.01011
    |
    符号位

    补码:x = -11/32 = 2 + (-11/32) = 0010.00000 - 0.01011 = 1.11112 - 0.01011 = 1 1.10101
    其实上一章《有符号数无符号数补码反码》总结的规律同样适用于这里的计算
    1
    2
    3
    4
    5
    6
    原码:x = -11/32 = 1 0.01011
    |
    符号位

    补码:x = -11/32 = 2 + (-11/32) = 0010.00000 - 0.01011 = 1.11112 - 0.01011 = 1 1.10101
    反码:x = -11/32 = 1 1.10100
    即:
  3. 负数的补码等于原码(除了符号位)按位取反再加1
  4. 负数的反码等于原码(除了符号位外)按位取反
  5. 负数的补码等于反码加1