已知[X]补=1.1010,求[(1/2)X]补码和[(1/2)X]原码是多少?原因?

问题描述:

已知[X]补=1.1010,求[(1/2)X]补码和[(1/2)X]原码是多少?原因?

补码的定义[2]如下:
[X]补=2+XMOD(2)(3)
从定义知,一个n位二进制定点负小数,求其补码时,用2为模数加上该负数即可.
例如:已知n=8,X=-0.1010101,则
[X]补=2+X=2+(-0.1010101)
=10-0.1010101
=10.0000000-0.10101011
=1.0101011
所以[X]补=1.1010 推出 [X]原码=1.1010-10=-0.0110
而 [(1/2)X相当于把X的每位的数值往右移一位
所以[(1/2)X=-0.00110 [(1/2)X]原码=-0.00110
所以[(1/2)X]补码=10+[(1/2)X]原码=10-0.00110=1.11010