专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

十六进制数转BCD码显示

作者:圆点博士   来源:圆点博士   点击数:  更新时间:2014年05月16日   【字体:

 在计算机中,数据是以0和1的二进制方式来表示的。比如一个8位的二进制数,就表示为 0001 0001,由于二进制数用起来比较不方便,所以人们通常以16进制的方式来表达,比如上述的00010001的16进制表示为0x11。

 
我们知道16进制的0x11, 如果用十进制来表示的话,代表的数是16。
 
 
 
由于十进制数是人们在日常生活中常用的数据表示方式。所以,当我们想要显示某个数的话,一般会转化为十进制里显示。下面我们来看看如果把一个4位的十进制数以BCD码的形式显示出来。
 
 
 
void BS004_COM1_Send_4bits_BCD_Num(int number)  //圆点博士:发送一个字符
{
 unsigned int num;
 unsigned char num_th[4];
 unsigned char i,bcd_code_len;
 //
 num=fabs(number);
 if(number<0) BS004_COM1_Send_Char('-');    //圆点博士:发送字符-
 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
 
 
 
代码首次判别数据是否是负数 ,如果是的话,显示符号-。
 
然后我们看到,转换是以除法和减法的方式来实现的。
关闭窗口

相关文章