为什么某些CPU具有不同的指令来执行有符号和无符号操作?

问题描述 投票:0回答:1

假设我们具有以下二进制数字及其表示形式:

| bin | unsigned | signed   |
|:---:|----------|----------|
| 110 | 6        | -2       |
| 111 | 7        | -1       |

现在,无论有符号或无符号,111 + 110 = 1101,现在,我可以将结果1101解释为有符号或无符号,即:

| bin  | unsigned | signed   |
|:----:|----------|----------|
| 1101 | 13       | -3       |

与十进制运算符匹配:

6+7 = 13
-1-2 = -3

[signed additionunsigned addition之间没有区别。那么,为什么CPU具有不同的电路/指令来进行这种操作?

binary cpu cpu-architecture instructions
1个回答
0
投票

因为2的补码加/减与无符号加/减是相同的二进制运算。但是对于比较(以及除法和扩大乘法)而言,将MSB解释为符号位还是无关紧要。

© www.soinside.com 2019 - 2024. All rights reserved.