格雷碼 (英文:Gray Code, Grey Code,又稱作葛萊碼,二進位制迴圈碼)是1880年由法國工程師Jean-Maurice-Emlle Baudot發明的一種編碼,是一種絕對編碼方式,典型格雷碼是一種具有反射特性和迴圈特性的單步自補碼,它的迴圈、單步特性消除了隨機取數時出現重大誤差的可能,它的反射、自補特性使得求反非常方便。格雷碼屬於可靠性編碼,是一種錯誤最小化的編碼方式,因為,雖然自然二進位制碼可以直接由數/模轉換器轉換成模擬訊號,但在某些情況,例如從十進位制的3轉換為4時二進位制碼的每一位都要變,能使數位電路產生很大的尖峰電流脈衝。而格雷碼則沒有這一缺點,它在相鄰位間轉換時,只有一位產生變化。它大大地減少了由一個狀態到下一個狀態時邏輯的混淆。由於這種編碼相鄰的兩個碼組之間只有一位不同,因而在用於風向的轉角位移量-數字量的轉換中,當風向的轉角位移量發生微小變化(而可能引起數字量發生變化時,格雷碼僅改變一位,這樣與其它編碼同時改變兩位或多位的情況相比更為可靠,即可減少出錯的可能性。 但格雷碼不是權重碼,每一位碼沒有確定的大小,不能直接進行比較大小和算術運算,也不能直接轉換成液位訊號,要經過一次碼變換,變成自然二進位制碼,再由上位機讀取。解碼的方法是用‘0’和採集來的4位格雷碼的最高位(第4位)異或,結果保留到4位,再將異或的值和下一位(第3位)相異或,結果保留到3位,再將相異或的值和下一位(第2位)異或,結果保留到2位,依次異或,直到最低位,依次異或轉換後的值(二進位制數)就是格雷碼轉換後自然碼的值.異或:異或則是按位“異或”,相同為“0”,相異為“1”。例: 10011000 異或 01100001 結果: 11111001 舉例: 如果採集器器採到了格雷碼:1010 就要將它變為自然二進位制: 0 與第四位 1 進行異或結果為 1 上面結果1與第三位0異或結果為 1 上面結果1與第二位1異或結果為 0 上面結果0與第一位0異或結果為 0 因此最終結果為:1100 這就是二進位制碼即十進位制 12 當然人看時只需對照表1一下子就知道是12
格雷碼 (英文:Gray Code, Grey Code,又稱作葛萊碼,二進位制迴圈碼)是1880年由法國工程師Jean-Maurice-Emlle Baudot發明的一種編碼,是一種絕對編碼方式,典型格雷碼是一種具有反射特性和迴圈特性的單步自補碼,它的迴圈、單步特性消除了隨機取數時出現重大誤差的可能,它的反射、自補特性使得求反非常方便。格雷碼屬於可靠性編碼,是一種錯誤最小化的編碼方式,因為,雖然自然二進位制碼可以直接由數/模轉換器轉換成模擬訊號,但在某些情況,例如從十進位制的3轉換為4時二進位制碼的每一位都要變,能使數位電路產生很大的尖峰電流脈衝。而格雷碼則沒有這一缺點,它在相鄰位間轉換時,只有一位產生變化。它大大地減少了由一個狀態到下一個狀態時邏輯的混淆。由於這種編碼相鄰的兩個碼組之間只有一位不同,因而在用於風向的轉角位移量-數字量的轉換中,當風向的轉角位移量發生微小變化(而可能引起數字量發生變化時,格雷碼僅改變一位,這樣與其它編碼同時改變兩位或多位的情況相比更為可靠,即可減少出錯的可能性。 但格雷碼不是權重碼,每一位碼沒有確定的大小,不能直接進行比較大小和算術運算,也不能直接轉換成液位訊號,要經過一次碼變換,變成自然二進位制碼,再由上位機讀取。解碼的方法是用‘0’和採集來的4位格雷碼的最高位(第4位)異或,結果保留到4位,再將異或的值和下一位(第3位)相異或,結果保留到3位,再將相異或的值和下一位(第2位)異或,結果保留到2位,依次異或,直到最低位,依次異或轉換後的值(二進位制數)就是格雷碼轉換後自然碼的值.異或:異或則是按位“異或”,相同為“0”,相異為“1”。例: 10011000 異或 01100001 結果: 11111001 舉例: 如果採集器器採到了格雷碼:1010 就要將它變為自然二進位制: 0 與第四位 1 進行異或結果為 1 上面結果1與第三位0異或結果為 1 上面結果1與第二位1異或結果為 0 上面結果0與第一位0異或結果為 0 因此最終結果為:1100 這就是二進位制碼即十進位制 12 當然人看時只需對照表1一下子就知道是12