格雷碼
由於人為或非人為的原因,程式碼在計算機或其它數字系統中形成、傳送和運算過程中都有可能出現錯誤。於是人們在提高計算機本身的可靠性的同時,也創造了一些可靠性編碼。它們令程式碼本身具有一種特徵或能力,使得程式碼在形成中不容易出錯,或程式碼在出錯時容易被發現,甚至能查出出錯的位置並予以糾正。格雷碼就是一種可靠性編碼。
在一組數的編碼中,若任意兩個相鄰的程式碼只有一位二進位制數不同,則稱這種編碼為格雷碼(Gray Code),另外由於最大數與最小數之間也僅一位數不同,即“首尾相連”,因此又稱迴圈碼。在數字系統中,常要求程式碼按一定順序變化。例如,按自然數遞增計數,若採用8421碼,則數0111變到1000時四位均要變化,而在實際電路中,4位的變化不可能絕對同時發生,則計數中可能出現短暫的其它程式碼(1100、1111等)。在特定情況下可能導致電路狀態錯誤或輸入錯誤。使用格雷碼可以避免這種錯誤。
格雷碼也有多種編碼形式,見表1-3。
表1-3 幾種格雷碼與二進位制碼對照表
十進位制數 二進位制碼
典型格雷碼
十進位制格雷碼(1)
十進位制格雷碼(2)
步進碼
0
0000
00000
1
0001
00001
2
0010
0011
00011
3
00111
4
0100
0110
01111
5
0101
0111
1110
11111
6
1010
11110
7
1011
11100
8
1000
1100
1001
11000
9
1101
10000
10
1111
11
12
13
14
15
表1-3中典型格雷碼(The Grey Code)具有代表性。若不作特別說明,格雷碼就是指典型格雷碼,它可從二進位制碼轉換而來。
在說明這種轉換之前,先介紹一種邏輯運算“模2加”,又稱“異或運算”或“半加”,即不考慮進位的加法,運算子號是
格雷碼
由於人為或非人為的原因,程式碼在計算機或其它數字系統中形成、傳送和運算過程中都有可能出現錯誤。於是人們在提高計算機本身的可靠性的同時,也創造了一些可靠性編碼。它們令程式碼本身具有一種特徵或能力,使得程式碼在形成中不容易出錯,或程式碼在出錯時容易被發現,甚至能查出出錯的位置並予以糾正。格雷碼就是一種可靠性編碼。
在一組數的編碼中,若任意兩個相鄰的程式碼只有一位二進位制數不同,則稱這種編碼為格雷碼(Gray Code),另外由於最大數與最小數之間也僅一位數不同,即“首尾相連”,因此又稱迴圈碼。在數字系統中,常要求程式碼按一定順序變化。例如,按自然數遞增計數,若採用8421碼,則數0111變到1000時四位均要變化,而在實際電路中,4位的變化不可能絕對同時發生,則計數中可能出現短暫的其它程式碼(1100、1111等)。在特定情況下可能導致電路狀態錯誤或輸入錯誤。使用格雷碼可以避免這種錯誤。
格雷碼也有多種編碼形式,見表1-3。
表1-3 幾種格雷碼與二進位制碼對照表
十進位制數 二進位制碼
典型格雷碼
十進位制格雷碼(1)
十進位制格雷碼(2)
步進碼
0
0000
0000
0000
0000
00000
1
0001
0001
0001
0001
00001
2
0010
0011
0011
0011
00011
3
0011
0010
0010
0010
00111
4
0100
0110
0110
0110
01111
5
0101
0111
1110
0111
11111
6
0110
0101
1010
0101
11110
7
0111
0100
1011
0100
11100
8
1000
1100
1001
1100
11000
9
1001
1101
1000
1000
10000
10
1010
1111
11
1011
1110
12
1100
1010
13
1101
1011
14
1110
1001
15
1111
1000
表1-3中典型格雷碼(The Grey Code)具有代表性。若不作特別說明,格雷碼就是指典型格雷碼,它可從二進位制碼轉換而來。
在說明這種轉換之前,先介紹一種邏輯運算“模2加”,又稱“異或運算”或“半加”,即不考慮進位的加法,運算子號是