-4

我正在看教科书中的一个谜题,我不确定我是否正确解释了组装说明。我理解它的方式是告诉我找到两个总和为 6005 的数字和 xor 给出 0。

这不意味着数字彼此相等吗?但是,考虑到它们的总和是 6005,它们怎么可能呢?是否有可能找到一对这样的数字,还是我错误地解释了汇编代码?让我知道你的想法!谢谢。

4

2 回答 2

2

这些陈述是矛盾的:

假设它们异或为 0,它们的和为 6005;这意味着两个数字相等;

两个数字要么是对的,要么是受损的

假设对:2k + 2k = 4k = 2(2K) = 2k = 一对数

假设损害 2k + 1 + 2k + 1 = 4k + 2 = 2 (2k + 1) = 2k = 一对数

6005 = 2 (3002) + 1 = 2k + 1 = 损坏数。

所以这是不可能的。

于 2013-02-17T08:30:28.323 回答
0

这取决于拼图的代码和代码所针对的特定 CPU。例如对于 x86:

mov   eax, 3002
stc
adc   eax, eax   ; the result is 6005

xor   eax, eax   ; the result zero
于 2013-02-17T09:05:01.890 回答