十进制数(-31.28)的原码、反码、补码各是多少了

机器数字长为8位(含1位符号位)要计算过程。
2025-01-03 20:49:43
推荐回答(2个)
回答1:

十进制 -31.28
二进制 10011111.00011100
二进制的反码 01100000.11100011
二进制的补码 01100000.11100100

回答2:

按照字长 16 位,小数点在中间,来设计各种代码。

先变换为二进制数:

  31D    = 0001 1111B;

  0.28D = 0.0100 0111B (= 0.27734...D)。

那么,各种代码为:

  [-31.28]原 = 1001 1111  0100 0111

  [-31.28]反 = 1110 0000  1011 1000

  [-31.28]补 = 1110 0000  1011 1001

----------------------

如果按照题目要求,字长为八位,就只能有两位小数。

这样做,误差就大了。

  -31.28 = -111 11.01 (=-31.25)

  [-31.25]原码 = 1111 1101;

  [-31.25]反码 = 1000 0010;

  [-31.25]补码 = 1000 0011。