控制工程师论坛

现场总线

16进制<->10进制互换程序

cqs0088
cqs0088

2008-09-15

16进制<->10进制互换程序

//16进制<->10进制互换程序

                   unsigned char d[10];    //用于显示的10位显示缓存
                   //========================================================
                       //16进制to10进制输出子程序:显示数据,起始位,结束位,有无小数点
                   //========================================================
                   void output(unsigned long dd,unsigned char s,unsigned char
                   e,unsigned char dip) {
                       unsigned long div;
                       unsigned char tm[8],i,j;
                       div=10000000;
                       for (i=0;i<8;i++) {
                           tm[i]=dd/div;
                           dd%=div;
                           div/=10;
                       }
                       for (i=0;i<6;i++) {
                           if (tm[i]!=0) break;
                           tm[i]=nul;
                       }
                       tm[5]|=dip;            //小数点控制,请看“串行LED数码管显示驱动程序”
                       j=7;
                       for (i=s;i<e;i++) {
                           d[i]=tm[j];
                           j--;
                       }
                   }
                   //把显示位5-9位的10进制数转换成为16进制数
                   unsigned int input(void) {
                       unsigned int dd,dat;
                       dd=10000;dat=0;
                       for (i=5;i<10;i++) {
                           dat+=dd*temp;
                           dd/=10;
                       }
                       return(dat);
                   }

回帖

评论0

首页 | 登录 | 注册 | 返回顶部↑
手机版 | 电脑版
版权所有 Copyright(C) 2016 CE China