格雷碼與二進制碼轉化成格雷碼


在一組數的編碼中,若任意兩個相鄰的代碼只有一位二進制數不同,則稱這種編碼為格雷碼(Gray Code),格雷碼由0和1組成,由二進制碼演化而成。

格雷碼生成方法如下:

  1. 1位格雷碼有兩個碼字
  2. (n+1)位格雷碼中的前2 n個碼字等於n位格雷碼的碼字,按順序書寫,加前綴0
  3. (n+1)位格雷碼中的后2 n個碼字等於n位格雷碼的碼字,按逆序書寫,加前綴1

舉例如下:

1位格雷碼:

0

1

2位格雷碼:

總共有2^2個碼字,前一半的碼字為1位的格雷碼按順序書寫加前綴0,后一半的碼字為1位格雷碼逆序書寫加前綴1,結果如下:

00

01

11

10

3位格雷碼為:

在2位格雷碼的基礎上結果如下:

000

001

011

010

110

111

101

100

同理可以得出n位的格雷碼。

 

二進制轉化成格雷碼:

原則是保留二進制碼的最高位作為格雷碼的最高位,格雷碼的次高位為二進制編碼的最高位和次高位相異或,格雷碼的其他位和次高位的求法類似。

Binary Code :1011 要轉換成Gray Code

  1011 = 1(照寫第一位), 1(第一位與第二位異或 1^0 = 1), 1(第二位異或第三位, 0^1=1), 0 (1^1 =0) = 1110

  其實就等於 (1011 >> 1) ^ 1011 = 1110


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM