如何用8选1数据选择器实现二进制取补码?

如题所述

如果8位二进制补码的最高位(符号位)为0,那么扩展后的16位补码直接在最高位前面添加8个0即可;
如果8位二进制补码的最高位(符号位)为1,那么扩展后的16位补码直接在最高位前面添加8个1即可;

举例如下:
-13
8位原码:1000 1101
8位补码:1111 0011
16位原码:1000 0000 0000 1101
16位补码:1111 1111 1111 0011
根据前面的知识,由于-13的最高位为1,所以直接在最高位前面添加8个1即可变为16位补码,即1111 1111 1111 0011(与前面由原码求补码的结果一致)。

13
8位原码:0000 1101
8位补码:0000 1101
16位原码:0000 0000 0000 1101
16位补码:0000 0000 0000 1101
根据前面的知识,由于13的最高位为0,所以直接在最高位前面添加8个0即可变为16位补码,即0000 0000 0000 1101(与前面由原码求补码的结果一致)。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答