![]() |
1
6
如果你看二进制计数序列,你会注意到,相邻的代码在最后几位不同(没有空穴),所以如果你异或它们,几个尾随1的模式就会出现。另外,当您右移数字时,xor也将右移:(A xor B)>>N==A>>N xor B>>N。
原始的异或结果和移位结果在单个位上是不同的(我用上面的点标记它们)。这意味着,如果你异或它们,你将得到1位模式集。所以,
当异或在不同的位上给我们1时,它证明了相邻的码只在一个位上不同,这是我们想要得到的灰色码的主要性质。 所以为了完整性,我们可以证明,N可以从它的N^(N>gt;1)值恢复:知道第N位代码,我们可以使用xor恢复第N位代码。
从最大位开始(与0进行异或),这样我们就可以恢复整数。 |
![]() |
2
1
通过归纳证明。
|
![]() |
3
1
Wikipedia entry 你指的是用一种非常迂回的方式解释这个方程。 不过,这有助于从以下方面入手:
换句话说,
换句话说:
完整地计算出数学,你会得到
|
![]() |
4
0
递增一个数字,当你按位看它时,会将所有的尾随的1翻转为0,最后的0翻转为1。这是很多位的翻转,而灰色代码的目的是使它恰好是一个。此转换使所有被翻转的位上的两个数字(递增前后)相等,但最高的位除外。
之后:
|