格雷碼和二進位製碼的互相轉換

2021-10-21 02:19:33 字數 1676 閱讀 9347

#include

#define maxsize 1000

char my_xor (

char a,

char b)

//異或運算

if(a != b)

return

'1';

return

'0';

}void

b2g(

)//二進位製碼轉換為格雷碼

;//表達二進位製碼,由1和0組成。

int n =0;

//陣列的大小

printf

("請輸入二進位製碼的長度n:");

scanf

("%d"

,&n)

;getchar()

;printf

("請輸入要轉換的二進位製碼:");

for(

int i =

0; i < n; i++

)//檢查二進位製碼:

// printf("%s", b);

char g[maxsize]=;

//建立格雷碼陣列

g[0]= b[0]

;for

(int i =

1; i < n; i++

)printf

("轉換出的典型格雷碼是:%s\n"

, g);}

char

opposite_xor

(char b,

char g)

//由b[i-1]和g[i]判斷b[i]並返回b[i]

if(g ==

'1')

else

if(g ==

'0')

return

'0';

}void

g2b(

)//格雷碼轉二進位製碼

;//表達二進位製碼,由1和0組成。

char g[maxsize]=;

//建立格雷碼陣列

int n =0;

//陣列的大小

printf

("請輸入格雷碼的長度n:");

scanf

("%d"

,&n)

;getchar()

;printf

("請輸入要轉換的格雷碼:");

for(

int i =

0; i < n; i++

)//檢查二進位製碼:

// printf("%s", b);

b[0]= g[0]

;for

(int i =

1; i < n; i++

)printf

("轉換出的二進位製碼是:%s"

, b);}

intmain()

//b2g測試案列

/*輸入:

40001

輸出:0001

輸入:4

0101

輸出:0111

輸入:4

1010

輸出:1111

*///g2b測試案列

/*輸入:

40001

輸出:0001

輸入:4

0111

輸出:0101

輸入:4

1111

輸出:1010

*/

格雷碼二進位制轉換

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

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

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

Gray碼 格雷碼 二進位制

以下內容是看了matrix67的關於二進位制的blog link 的一點總結與摘錄。gray碼,中文 格雷碼 是一種特殊的編碼,相鄰兩個格雷碼的二進位制表示中有且僅有一位不同,且 n 階 gray 碼是 0 2 n 1 的乙個排列。n 階 gray 碼可以由 n 1 階 gray 碼映象翻轉之後最前...