4位格雷码连续性
前言
上的第二节数电课讲了下4位格雷码,我对格雷码为什么连续很感兴趣,就试着写下这些东西。如有纰漏,烦请指正,不胜感激。
前置知识
请先了解下列知识点:
- 格雷码
- 格雷码是什么
- 格雷码简单性质
- 格雷码和二进制相互的转换
- 模2加法(异或)
- 实际加法的位运算实现
- 一些常用数学符号
- 异或: ^或 ⊕ \oplus ⊕
- 非: ~ x x x或 x ‾ \overline{x} x
正文
对应表
十进制 | 二进制 | 格雷码 |
---|---|---|
0 | 0000 | 0000 |
1 | 0001 | 0001 |
2 | 0010 | 0011 |
3 | 0011 | 0010 |
4 | 0100 | 0110 |
5 | 0101 | 0111 |
6 | 0110 | 0101 |
7 | 0111 | 0100 |
8 | 1000 | 1100 |
9 | 1001 | 1101 |
10 | 1010 | 1111 |
11 | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
15 | 1111 | 1000 |
过程
设二进制为
x
x
x, 格雷码为
g
(
x
)
g(x)
g(x)。将x四位分开,从高到低为
x
1
,
x
2
,
x
3
,
x
4
x_1, x_2, x_3, x_4
x1,x2,x3,x4,同样,将
g
(
x
)
g(x)
g(x)分为
g
(
x
)
1
,
.
.
.
,
g
(
x
)
4
g(x)_1, ..., g(x)_4
g(x)1,...,g(x)4,即:
x
=
x
1
∗
2
3
+
x
2
∗
2
2
+
x
3
∗
2
1
+
x
4
∗
2
0
x = x_1*2^3+x_2*2^2+x_3*2^1+x_4*2^0
x=x1∗23+x2∗22+x3∗21+x4∗20
对连续性,我们考虑 x x x和 x + 1 x+1 x+1及对应的格雷码,如下:
第一位 | 第二位 | 第三位 | 第四位 | |
---|---|---|---|---|
x x x | x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 |
x + 1 x+1 x+1 | x 4 & x 3 & x 2 ⊕ x 1 x_4\&x_3\&x_2\oplus x_1 x4&x3&x2⊕x1 | x 4 & x 3 ⊕ x 2 x_4\&x_3\oplus x_2 x4&x3⊕x2 | x 4 ⊕ x 3 x_4\oplus x_3 x4⊕x3 | x 4 ‾ \overline{x_4} x4 |
g ( x ) g(x) g(x) | x 1 x_1 x1 | x 1 ⊕ x 2 x_1\oplus x_2 x1⊕x2 | x 2 ⊕ x 3 x_2\oplus x_3 x2⊕x3 | x 3 ⊕ x 4 x_3\oplus x_4 x3⊕x4 |
g ( x + 1 ) g(x+1) g(x+1) | x 4 & x 3 & x 2 ⊕ x 1 x_4\&x_3\&x_2\oplus x_1 x4&x3&x2⊕x1 | ( x 4 & x 3 & x 2 ⊕ x 1 ) ⊕ ( x 4 & x 3 ⊕ x 2 ) (x_4\&x_3\&x_2\oplus x_1)\oplus (x_4\&x_3\oplus x_2) (x4&x3&x2⊕x1)⊕(x4&x3⊕x2) | ( x 4 & x 3 ⊕ x 2 ) ⊕ ( x 4 ⊕ x 3 ) (x_4\&x_3\oplus x_2)\oplus (x_4\oplus x_3) (x4&x3⊕x2)⊕(x4⊕x3) | x 3 ‾ \overline{x_3} x3 |
一些运算技巧(只针对1bit)
- &和有优先级之分,即a&bc != ac&b,且&优先级高于
- &和^都满足交换律
- a^1 = ~a
- a^0 = a
- a^a = 0
假设法
连续两数只有1位不同,4位格雷码只需设4遍各位不同,证剩下的相同
1. 设第一位不同
有:
x 1 ‾ = x 4 & x 3 & x 2 ⊕ x 1 \overline{x_1} = x_4\&x_3\&x_2\oplus x_1 x1=x4&x3&x2⊕x1
∴ x 4 & x 3 & x 2 = 1 \therefore x_4\&x_3\&x_2=1 ∴x4&x3&x2=1
∴ x 4 = x 3 = x 2 = 1 \therefore x_4=x_3=x_2=1 ∴x4=x3=x2=1
得:
第二位 | 第三位 | 第四位 | |
---|---|---|---|
g(x) | x 1 ‾ \overline{x_1} x1 | 0 | 0 |
g(x+1) | x 1 ‾ \overline{x_1} x1 | 0 | 0 |
2. 设第二位不同
有:
x 1 ⊕ x 2 ‾ = ( x 4 & x 3 & x 2 ⊕ x 1 ) ⊕ ( x 4 & x 3 ⊕ x 2 ) \overline{x_1\oplus x_2} = (x_4\&x_3\&x_2\oplus x_1)\oplus (x_4\&x_3\oplus x_2) x1⊕x2=(x4&x3&x2⊕x1)⊕(x4&x3⊕x2)
∴ x 1 ⊕ x 2 ‾ = ( x 4 & x 3 & x 2 ) ⊕ ( x 4 & x 3 ) ⊕ ( x 1 ⊕ x 2 ) \therefore \overline{x_1\oplus x_2} = (x_4\&x_3\&x_2)\oplus (x_4\&x_3)\oplus (x_1\oplus x_2) ∴x1⊕x2=(x4&x3&x2)⊕(x4&x3)⊕(x1⊕x2)
∴ ( x 4 & x 3 & x 2 ) ⊕ ( x 4 & x 3 ) = 1 \therefore (x_4\&x_3\&x_2)\oplus (x_4\&x_3)=1 ∴(x4&x3&x2)⊕(x4&x3)=1
∴ x 4 & x 3 & x 2 = x 4 & x 3 ‾ \therefore x_4\&x_3\&x_2=\overline{x_4\&x_3} ∴x4&x3&x2=x4&x3
∴ x 2 = 0 , x 4 & x 3 = 1 \therefore x_2=0, x_4\&x_3=1 ∴x2=0,x4&x3=1
∴ x 2 = 0 , x 4 = x 3 = 1 \therefore x_2=0, x_4=x_3=1 ∴x2=0,x4=x3=1
得:
第一位 | 第三位 | 第四位 | |
---|---|---|---|
g(x) | x 1 x_1 x1 | 1 | 0 |
g(x+1) | x 1 x_1 x1 | 1 | 0 |
3. 设第三位不同
有:
x 3 & x 2 ‾ = ( x 4 & x 3 ⊕ x 2 ) ⊕ ( x 4 ⊕ x 3 ) \overline{x_3\&x_2} = (x_4\&x_3\oplus x_2)\oplus (x_4\oplus x_3) x3&x2=(x4&x3⊕x2)⊕(x4⊕x3)
∴ x 2 ⊕ x 3 ‾ = ( x 4 & x 3 ⊕ x 4 ) ⊕ ( x 2 ⊕ x 3 ) \therefore \overline{x_2\oplus x_3} = (x_4\&x_3\oplus x_4)\oplus (x_2\oplus x_3) ∴x2⊕x3=(x4&x3⊕x4)⊕(x2⊕x3)
∴ x 4 & x 3 ⊕ x 4 = 1 \therefore x_4\&x_3\oplus x_4=1 ∴x4&x3⊕x4=1
若 x 3 = 1 x_3=1 x3=1, 有 x 4 ⊕ x 4 = 1 x_4\oplus x_4=1 x4⊕x4=1, 显然不可能
∴ x 3 = 0 , x 4 = 1 \therefore x_3=0, x_4=1 ∴x3=0,x4=1
得:
第一位 | 第二位 | 第四位 | |
---|---|---|---|
g(x) | x 1 x_1 x1 | x 1 ⊕ x 2 x_1\oplus x_2 x1⊕x2 | 1 |
g(x+1) | x 1 x_1 x1 | x 1 ⊕ x 2 x_1\oplus x_2 x1⊕x2 | 1 |
4. 设第四位不同
有:
x 3 ⊕ x 4 = x 3 x_3\oplus x_4 = x_3 x3⊕x4=x3
∴ x 4 = 0 \therefore x_4=0 ∴x4=0
得:
第一位 | 第二位 | 第三位 | |
---|---|---|---|
g(x) | x 1 x_1 x1 | x 1 ⊕ x 2 x_1\oplus x_2 x1⊕x2 | x 2 ⊕ x 3 x_2\oplus x_3 x2⊕x3 |
g(x+1) | x 1 x_1 x1 | x 1 ⊕ x 2 x_1\oplus x_2 x1⊕x2 | x 2 ⊕ x 3 x_2\oplus x_3 x2⊕x3 |
后记
- 鉴于本人愚钝,暂时未想出容易理解、容易推广的证明方法。而且只是证明连续性,还是不知道连续的原因
- markdown数学公式中^符号是怎么打出来的,虚心求教