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...