十进制 -31.28
二进制 10011111.00011100
二进制的反码 01100000.11100011
二进制的补码 01100000.11100100
按照字长 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。