-4

教科書のパズルを見ていますが、組み立て説明書を正しく解釈しているかどうかわかりません。私が理解した方法では、合計が 6005 になる 2 つの数値と、xor で 0 になる数値を見つけるように指示しています。

これは、数字が互いに等しいという意味ではありませんか? しかし、それらの合計が 6005 であることを考えると、どうすればよいのでしょうか? そのような数字のペアを見つけることは可能ですか、それともアセンブリ コードを間違って解釈したのでしょうか? どう考えているか教えてください!ありがとう。

4

2 に答える 2

2

これらのステートメントは矛盾しています:

それらが 0 に xor され、それらの合計が 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 に答える