在計(jì)算機(jī)中,數(shù)據(jù)是以0和1的二進(jìn)制方式來(lái)表示的。比如一個(gè)8位的二進(jìn)制數(shù),就表示為 0001 0001,由于二進(jìn)制數(shù)用起來(lái)比較不方便,所以人們通常以16進(jìn)制的方式來(lái)表達(dá),比如上述的00010001的16進(jìn)制表示為0x11。
我們知道16進(jìn)制的0x11, 如果用十進(jìn)制來(lái)表示的話,代表的數(shù)是16。
由于十進(jìn)制數(shù)是人們?cè)谌粘I钪谐S玫臄?shù)據(jù)表示方式。所以,當(dāng)我們想要顯示某個(gè)數(shù)的話,一般會(huì)轉(zhuǎn)化為十進(jìn)制里顯示。下面我們來(lái)看看如果把一個(gè)4位的十進(jìn)制數(shù)以BCD碼的形式顯示出來(lái)。
void BS004_COM1_Send_4bits_BCD_Num(int number) //圓點(diǎn)博士:發(fā)送一個(gè)字符
{
unsigned int num;
unsigned char num_th[4];
unsigned char i,bcd_code_len;
//
num=fabs(number);
if(number<0) BS004_COM1_Send_Char('-'); //圓點(diǎn)博士:發(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ù)是否是負(fù)數(shù) ,如果是的話,顯示符號(hào)-。
然后我們看到,轉(zhuǎn)換是以除法和減法的方式來(lái)實(shí)現(xiàn)的。