您的位置:控制工程论坛网论坛 » 现场总线 » 16进制<->10进制互换程序

cqs0088

cqs0088   |   当前状态:在线

总积分:-390  2025年可用积分:0

注册时间: 2008-07-12

最后登录时间: 2012-05-30

空间 发短消息加为好友

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

cqs0088  发表于 2008/9/15 7:39:43      896 查看 0 回复  [上一主题]  [下一主题]

手机阅读

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);
                   }

1楼 0 0 回复