亚洲精品无码一区二区三区久久久,长春欧亚卖场是哪个区,美熟女一区二区三区,亚洲中文字幕无码一区二区三区 ,欧美人与动牲交zooz男人,日本黄h兄妹h动漫一区二区三区,亚洲国产综合久久天堂,四虎成人影视免费在线站长,小黄片午夜视频在线播放,久久久日韩精品一区二区三区

廣告招募

當前位置:歐亞貿易網 > 技術中心 > 所有分類

格雷碼

2023年05月02日 08:05:31      來源:武漢新綠原科技發展有限公司 >> 進入該公司展臺      閱讀量:32

分享:

 
格雷碼
 
加入時間:2012-08-09
 
 
格雷碼(Gray code),又叫循環二進制碼反射二進制碼
    數字系統中只能識別0和1,各種數據要轉換為二進制代碼才能進行處理,格雷碼是一種無權碼,采用編碼方式,典型格雷碼是一種具有反射特性和循環特性的單步自補碼,它的循環、單步特性消除了隨機取數時出現重大誤差的可能,它的反射、自補特性使得求反非常方便。格雷碼屬于可靠性編碼,是一種錯誤最小化的編碼方式,因為,自然二進制碼可以直接由數/模轉換器轉換成模擬信號,但某些情況,例如從十進制的3轉換成4時二進制碼的每一位都要變,使數字電路產生很大的尖峰電流脈沖。而格雷碼則沒有這一缺點,它是一種數字排序系統,其中的所有相鄰整數在它們的數字表示中只有一個數字不同。它在任意兩個相鄰的數之間轉換時,只有一個數位發生變化。它大大地減少了由一個狀態到下一個狀態時邏輯的混淆。另外由于數與最小數之間也僅一個數不同,故通常又叫格雷反射碼循環碼。下表為幾種自然二進制碼與格雷碼的對照表:      
十進制數 自然二進制數 格雷碼
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100
8 1000 1100
9 1001 1101
10 1010 1111
11 1011 1110
12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000
一般的,普通二進制碼與格雷碼可以按以下方法互相轉換
二進制碼->格雷碼(編碼):從最右邊一位起,依次將每一位與左邊一位異或(XOR),作為對應格雷碼該位的值,最左邊一位不變(相當于左邊是0); 格雷碼-〉二進制碼(解碼):從左邊第二位起,將每位與左邊一位解碼后的值異或,作為該位解碼后的值(最左邊一位依然不變).
數學(計算機)描述:   

原碼:p[0~n];格雷碼:c[0~n](n∈N);編碼:c=G(p);解碼:p=F(c);書寫時從左向右標號依次減小.
   編碼:c=p XOR p[i+1](i∈N,0≤i≤n-1),c[n]=p[n];
   解碼:p[n]=c[n],p=c XOR p[i+1](i∈N,0≤i≤n-1).
   Gray Code是由貝爾實驗室的Frank Gray在20世紀40年代提出的(是1880年由法國工程師Jean-Maurice-Emlle Baudot發明的),用來在使用PCM(Pusle Code Modulation)方法傳送訊號時避免出錯,并于1953年3月17日取得美國。由定義可知,Gray Code的編碼方式不是的,這里討論的是的一種。
   格雷碼
   (英文:Gray Code, Grey Code,又稱作葛萊碼,二進制循環碼)是1880年由法國工程師Jean-Maurice-Emlle Baudot發明的一種編碼,是一種編碼方式,典型格雷碼是一種具有反射特性和循環特性的單步自補碼,它的循環、單步特性消除了隨機取數時出現重大誤差的可能,它的反射、自補特性使得求反非常方便。格雷碼屬于可靠性編碼,是一種錯誤最小化的編碼方式,因為,雖然自然二進制碼可以直接由數/模轉換器轉換成模擬信號,但在某些情況,例如從十進制的3轉換為4時二進制碼的每一位都要變,能使數字電路產生很大的尖峰電流脈沖。而格雷碼則沒有這一缺點,它在相鄰位間轉換時,只有一位產生變化。它大大地減少了由一個狀態到下一個狀態時邏輯的混淆。由于這種編碼相鄰的兩個碼組之間只有一位不同,因而在用于風向的轉角位移量-數字量的轉換中,當風向的轉角位移量發生微小變化(而可能引起數字量發生變化時,格雷碼僅改變一位,這樣與其它編碼同時改變兩位或多位的情況相比更為可靠,即可減少出錯的可能性。
   但格雷碼不是權重碼,每一位碼沒有確定的大小,不能直接進行比較大小和算術運算,也不能直接轉換成液位信號,要經過一次碼變換,變成自然二進制碼,再由上位機讀取。解碼的方法是用‘0’和采集來的4位格雷碼的位(第4位)異或,結果保留到4位,再將異或的值和下一位(第3位)相異或,結果保留到3位,再將相異或的值和下一位(第2位)異或,結果保留到2位,依次異或,直到位,依次異或轉換后的值(二進制數)就是格雷碼轉換后自然碼的值.
   異或:異或則是按位“異或”,相同為“0”,相異為“1”。例:
   異或 結果:

舉例:
如果采集器器采到了格雷碼:1010
就要將它變為自然二進制:
0 與第四位 1 進行異或結果為 1

上面結果1與第三位0異或結果為 1

面結果1與第二位1異或結果為 0

上面結果0與0異或結果為 0

因此最終結果為:1100 這就是二進制碼即十進制 12

當然人看時只需對照表1一下子就知道是12

雷碼解碼的Pascal 程序:

var x,y,i:longint;

begin

    readln(x);

    for i:= 30 downto 0 do

    begin

        y:=(x and (1 shl i )) xor (( x and (1 shl(i+1))) shr 1);

        x:=x and not (1 shl i ) or y;

    end;

    writeln(x);

end.

 

版權與免責聲明:
1.凡本網注明"來源:歐亞貿易網"的所有作品,版權均屬于歐亞貿易網,轉載請必須注明歐亞貿易網。違反者本網將追究相關法律責任。
2.企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
3.本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。 4.如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系。