格雷碼與二進位制的轉換

2021-08-13 22:41:43 字數 1370 閱讀 1176

格雷碼,又叫迴圈二進位製碼或反射二進位製碼,格雷碼是我們在工程中常會遇到的一種編碼方式,它的基本的特點就是任意兩個相鄰的**只有一位二進位制數不同,這點在下面會詳細講解到。格雷碼的基本特點就是任意兩個相鄰的**只有一位二進位制數不同,這點很重要。常用的二進位制數與格雷碼間的轉換關係如下表:

1、二進位製碼轉換成二進位制格雷碼 

二進位製碼轉換成二進位制格雷碼,其法則是保留二進位製碼的最高位作為格雷碼的最高位,而次高位格雷碼為二進位製碼的高位與次高位相異或,而格雷碼其餘各位與次高位的求法相類似。  

轉換**: 

//根據二進位制轉換成格雷碼的法則,可以得到以下的**:

static

unsigned

int decimaltogray(unsigned

int x)

//以上**實現了unsigned int型資料到格雷碼的轉換,最高可轉換32位自然二進位製碼,超出32位將溢位。

static

int decimaltogray( int x)

//以上**實現了 int型資料到格雷碼的轉換,最高可轉換31位自然二進位製碼,超出31位將溢位。

2、二進位制格雷碼轉換成二進位製碼 

二進位制格雷碼轉換成二進位製碼,其法則是保留格雷碼的最高位作為自然二進位製碼的最高位,而次高位自然二進位製碼為高位自然二進位製碼與次高位格雷碼相異或,而自然二進位製碼的其餘各位與次高位自然二進位製碼的求法相類似。 

轉換**:

根據二進位制格雷碼轉換成自然二進位製碼的法則,可以得到以下的三種**方式: 

 static

unsigned

int graytodecimal(unsigned

int x)

 static

unsigned

int graytodecimal(unsigned

int x)

 static

unsigned

int graytodecimal(unsigned

int x)

//以上**實現了unsigned int型資料到自然二進位製碼的轉換,最高可轉換32位格雷碼,超出32位將溢位。將資料型別改為int型即可實現31位格雷碼轉換。

格雷碼二進位制轉換

在結構光編碼方法中,有一種格雷碼編碼方法 與二進位制編碼方法相比,格雷碼編碼方法能夠更好的乙隻雜訊干擾,方便糾錯。用格雷碼對三維測量空間進行編碼,在解碼時需要將格雷碼在此轉換成二進位制,方便計算。實現 如下 unsigned binarytogray unsigned num 將二進位制值右移一位,...

格雷碼與二進位製碼的轉換

gray code是1880年由法國工程師jean maurice emlle baudot發明的一種編碼,是一種絕對編碼方式,典型格雷碼是一種具有反射特性和迴圈特性的單步自補碼,它的迴圈 單步特性消除了隨機取數時出現重大誤差的可能,它的反射 自補特性使得求反非常方便。格雷碼屬於可靠性編碼,是一種錯...

二進位制格雷碼與自然二進位製碼的互換

原始網頁 http www.pcdog.com a 19 10 a210086.html 在精確定位控制系統中,為了提高控制精度,準確測量控制物件的位置是十分重要的。目前,檢測位置的辦法有兩種 其一是使用位置感測器,測量到的位移量由變送器經a d轉換成數字量送至系統進行進一步處理。此方法精度高,但在...