回覆列表
  • 1 # 滴逃逃

    格雷碼

    由於人為或非人為的原因,程式碼在計算機或其它數字系統中形成、傳送和運算過程中都有可能出現錯誤。於是人們在提高計算機本身的可靠性的同時,也創造了一些可靠性編碼。它們令程式碼本身具有一種特徵或能力,使得程式碼在形成中不容易出錯,或程式碼在出錯時容易被發現,甚至能查出出錯的位置並予以糾正。格雷碼就是一種可靠性編碼。

    在一組數的編碼中,若任意兩個相鄰的程式碼只有一位二進位制數不同,則稱這種編碼為格雷碼(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加”,又稱“異或運算”或“半加”,即不考慮進位的加法,運算子號是

  • 中秋節和大豐收的關聯?
  • 如果蘋果手機降價一半,你會買嗎?