我正在看教科书中的一个谜题,我不确定我是否正确解释了组装说明。我理解它的方式是告诉我找到两个总和为 6005 的数字和 xor 给出 0。
这不意味着数字彼此相等吗?但是,考虑到它们的总和是 6005,它们怎么可能呢?是否有可能找到一对这样的数字,还是我错误地解释了汇编代码?让我知道你的想法!谢谢。
我正在看教科书中的一个谜题,我不确定我是否正确解释了组装说明。我理解它的方式是告诉我找到两个总和为 6005 的数字和 xor 给出 0。
这不意味着数字彼此相等吗?但是,考虑到它们的总和是 6005,它们怎么可能呢?是否有可能找到一对这样的数字,还是我错误地解释了汇编代码?让我知道你的想法!谢谢。
这些陈述是矛盾的:
假设它们异或为 0,它们的和为 6005;这意味着两个数字相等;
两个数字要么是对的,要么是受损的
假设对:2k + 2k = 4k = 2(2K) = 2k = 一对数
假设损害 2k + 1 + 2k + 1 = 4k + 2 = 2 (2k + 1) = 2k = 一对数
6005 = 2 (3002) + 1 = 2k + 1 = 损坏数。
所以这是不可能的。
这取决于拼图的代码和代码所针对的特定 CPU。例如对于 x86:
mov eax, 3002
stc
adc eax, eax ; the result is 6005
xor eax, eax ; the result zero