对于 n 位数字 x,在 z 次迭代后,答案总是在 x 的最右边 n/(2 次方 z) 位中。
我们举一个例子,其中 n=8 和 x=10110001 (b7, b6, b5, b4, b3, b2, b1, b0)。
实际/正确答案是 even_parity。
1 次迭代后
10110001
00001011
___________
x = 10111010
最右边的 8/(2 的 1 次方) = x 的 4 位 = 1010(偶校验)
经过2次迭代
10111010
00101110
___________
x = 10010100
最右边的 8/(2 的 2 次方) = x 的 2 位 = 00(偶校验)
经过3次迭代
10010100
01001010
___________
x = 11011110
最右边的 8/(2 的 3 次方) = x 的 1 位 = 0(偶校验)
现在我们可以通过 ANDING 来提取数字 b 的任何第 d 位数字
数字 q,其中只有第 d 位是 1(一),其他所有位都是 0(零)。
这里我们要提取x的最终值的第(0位)/(最右边的位)。
所以让我们AND它(即(final_value_of_x
(i.e, 11011110)
)
after (
2 to the power(
log n to the base 2
)
) iterations
) with 00000001 to get the answer.
11011110
00000001
_________________
00000000