關於BCD和格雷碼

2021-08-14 06:11:16 字數 1142 閱讀 4750

1、原來關於keil的debug的printf用法,其實並沒有像當初寫這篇博文那樣麻煩。

只是需要ti = 1; 再加上 stdio.h就行了。

2、unsigned long最大可達42億,10位

bcd碼,感覺以前沒怎麼在意,其實用的也最多了。

實際上就是4位二進位制數構成0-9的1位十進位制數,取值範圍0000 ~ 1001。

eg: 十進位制的12,8421bcd表示為0001 0010, 而=二進位制數為18。

#include 

#include

unsigned

char buf[10];

void longtobcd(unsigned

long x)

void main()

哦,對了。。還有bcd的乙個知識點,

一般時鐘晶元裡面的都是bcd碼儲存格式,要把對應的bcd碼轉化成ascii只需要加上0x30或者,』0』,就可以了。

格雷碼是一種無權碼,可靠性比有權碼高!

沒有權,換言之就是我們不能一下子看出來等於幾了。下面為二進位制和格雷碼的演算法轉換思路。(學習一波)

#include 

#include

unsigned

long dectogray(unsigned

long x) //十進位制數轉換為格雷碼

unsigned

long graytodec(unsigned

long x) //格雷碼轉換為十進位制數

return y;

}void main()

while(1);

}

總結一下轉換思路:

十進位制數轉換為格雷碼,是十進位制對應的二進製數右移一位後,再與自身進行異或運算。

格雷碼轉換為十進位制數為: 格雷碼不斷右移,然後和自身進行異或運算直到自身右移到0。

BCD碼 8421碼 餘三碼 格雷碼

用四位二進位制 來表示一位十進位制數,稱為二 十進位制編碼,簡稱bcd binary coded decimal 碼。根據 的每一位是否有權值bcd碼可分為有權碼和無權碼兩類,應用最多的是8421bcd碼,無權碼用得較多的是餘三碼和格雷碼,我們通常所說的bcd碼指的是8421bcd碼。這些編碼跟十進...

關於格雷碼

典型二進位制格雷碼 binary gray code 簡稱格雷碼,因1953年公開的弗蘭克 格雷 frank gray,18870913 19690523 專利 pulse code communication 而得名。在一組數的編碼中,若任意兩個相鄰的 只有一位二進位制數不同,則稱這種編碼為格雷碼...

生成格雷碼

程式設計題 生成格雷碼 在一組數的編碼中,若任意兩個相鄰的 只有一位二進位制數不同,則稱這種編碼為格雷碼 gray code 請編寫乙個函式,使用遞迴的方法生成n位的格雷碼。給定乙個整數n,請返回n位的格雷碼,順序為從0開始。測試樣例 1返回 0 1 思想 用遞迴法實現,把求n位格雷碼分解為求n 1...