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