想吃冰卻又敏感保護不足?老王現身說法關鍵字魅力!攝影界美人正妹指定相機款24天後重啟院會 兩岸...
2012-01-06 16:42:35 人氣(2,541) | 回應(0) | 推薦(0) | 收藏(0) 上一篇 | 下一篇

[C/C++] 格雷碼(Gray code)

0
收藏
0
推薦

格雷碼(Gray code)是由貝爾實驗室的Frank Gray在1940年提出,用於在PCM脈衝編碼調變)方法傳送訊號時防止出錯,並於1953年三月十七日取得美國專利。格雷碼是一個數列集合,相鄰兩數間只有一個位元改變,為無權數碼,且格雷碼的順序不是唯一的。...

作法 : by wiki



#include<stdio.h>

void Print(unsigned n, int bit) {
    if(bit == 0)    return;
    Print(n>>1, bit-1);
    printf("%d", n&1);
}
int main() {
    int n;
    while(scanf("%d", &n) == 1) {
        unsigned i, j;
        for(i = 0; i < (1<<n); i++) {
            unsigned tmp = 0;
            for(j = 0; j < n; j++) {
                tmp |= (((i>>j)^(i>>(j+1)))&1)<<j;
            }
            Print(tmp, n);
            puts("");
        }
    }
    return 0;
}

格雷碼Graycode
台長:Morris
人氣(2,541) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: 亂糟糟筆記 |
此分類下一篇:[C/C++] 用程式碼印出自己的程式碼
此分類上一篇:[筆記] Unicode In C/C++

我要回應
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入以下數字 (ex:123)

(有*為必填)
詳全文