c是多少?

如题所述

第1个回答  2024-01-11
去掉小数点(小数点右移7位,最高位为符号位)
A为正数用8位原码表示: 00010101
B为负数用8位补码表示: 10010101(01101011取反加1得到)
结果C=A+B=00010101+10010101=10101010
C的高位为1 表示结果为负数,转原码为01010110(减1取反),恢复小数点(小数点左移7位)和符号为-0.101011,运算过程没有发生进位超出8位,因此没有溢出。
用十进制验证
C的十进制为-0.671875(0.5+0.125+0.03125+0.015625=0.671875)
A(0.0010101)的十进制A'为0.125+0.03125+0.0078125=0.1640625
B(-0.1101011)的十进制B'为-(0.5+0.25+0.0625+0.015625+0.0078125)=-0.8359375
D=A'+B'=0.1640625-0.8359375=-0.671875
由于C=D,因此计算无误。
相似回答
大家正在搜