2012年8月27日 星期一

格雷碼 ( gray code)


格雷碼 ( gray code)
格雷碼 也稱 灰色碼、反射碼、鏡射碼,通常 用在 卡諾圖的外圍 X軸,Y軸上 可以化簡 布林代數式,也就是 用畫圖的方式 圈幾個圈 答案 出來了。

格雷碼 的特徵:
1. 上下相鄰的 兩個碼 只變化 一個位元。
2. 第一個碼(首碼) 最後一個碼(尾碼) 也是 只有一個位元變化,所以 稱為 首尾相鄰。

格雷碼 如何寫出來的呢?
EX:請寫出 一位元格雷碼?
0
1
變化過程
0 
先寫上一個 0 ,在 0 的正下方 畫上一條 紅色小橫線 代表 反相 鏡子 的功能
所以 0 反相 及鏡射值 1,寫在 小橫線 正下方,這就是答案。
0
1

EX:請寫出 二位元格雷碼?(兩位元以上 都分成兩段討論:紅色 黑色)
0 0
0 1
1 1
1 0
變化過程
一位元格雷碼 左邊 各補上 一個 0,新加入的 0  一定是 紅色橫線
0 0
0 1
左邊 垂直 讀下來 0 0 其正下方 有一條 紅色橫線 代表反相 鏡子 的功能
右邊 垂直 讀下來 0 1,其正下方 有一條 黑色橫線 代表 只有 鏡子 的功能
左邊的答案先寫
0 0
0 1
1 1
1 0
對顏色 可知 排在 鏡子 最前面的 其反射值 一定在 最前面,後面的 一定也在後面。
一般來說,橫線 上方的數字 由下 往上 0 0
          橫線 下方的答案 由橫線 正下方 由上 往下 1 1
注意 紅色橫線 是代表 反相 鏡子 的功能

再寫 右邊的答案
0 0
0 1
1 1
1 0
一般來說,橫線 上方的數字 由下 往上 1 0
          橫線 下方的答案 由橫線 正下方 由上 往下 1 0
注意 黑色橫線 是代表 鏡子 的功能 沒有 反相。

EX:請寫出 三位元格雷碼?(兩位元以上 都分成兩段討論:紅色 黑色)
ANS
0
1


00
01
11
10


000
001
011
010
1
1
1
1


000
001
011
010
11
11
10
10


000
001
011
010
110
111
101
100