在計算機中,數(shù)據(jù)是以0和1的二進制方式來表示的。比如一個8位的二進制數(shù),就表示為 0001 0001,由于二進制數(shù)用起來比較不方便,所以人們通常以16進制的方式來表達,比如上述的00010001的16進制表示為0x11。
我們知道16進制的0x11, 如果用十進制來表示的話,代表的數(shù)是16。
由于十進制數(shù)是人們在日常生活中常用的數(shù)據(jù)表示方式。所以,當(dāng)我們想要顯示某個數(shù)的話,一般會轉(zhuǎn)化為十進制里顯示。下面我們來看看如果把一個4位的十進制數(shù)以BCD碼的形式顯示出來。
void BS004_COM1_Send_4bits_BCD_Num(int number) //圓點博士:發(fā)送一個字符
{
unsigned int num;
unsigned char num_th[4];
unsigned char i,bcd_code_len;
//
num=fabs(number);
if(number<0) BS004_COM1_Send_Char('-'); //圓點博士:發(fā)送字符-
if(num>9999) num=9999;
if(num>999) bcd_code_len=4;
else if(num>99) bcd_code_len=3;
else if(num>9) bcd_code_len=2;
else bcd_code_len=1;
//
if(num>999) {num_th[3]=num/1000; num-=num_th[3]*1000;}
if(num>99) {num_th[2]=num/100; num-=num_th[2]*100; }
if(num>9) {num_th[1]=num/10; num-=num_th[1]*10; }
num_th[0]=num;
//
for(i=0;i
代碼首次判別數(shù)據(jù)是否是負數(shù) ,如果是的話,顯示符號-。
然后我們看到,轉(zhuǎn)換是以除法和減法的方式來實現(xiàn)的。