将十六进制数转换为十进制如何来转换呢比如一十六进制数4EBC67转换为十进制是516003...

来源:百度文库 编辑:神马文学网 时间:2024/06/03 03:59:31
将十六进制数转换为十进制如何来转换呢比如一十六进制数4EBC67转换为十进制是5160039请问如何来写这一程序呢?     2005-08-15,14:36:08 资料 邮件 编辑 删除 【1楼】 zhzzh18 小章
积分:814
派别:
等级:------
来自:福夷武夷山
根本就不用转换,电脑存储是以16进制来存的,比如你存5160039,在寄存器里就是4ebc67。
不然就这样0x1234,1 *16*16*16+  2 *16*16+ 3 *16 + 4
  2005-08-15,15:29:21 资料 邮件 编辑 删除 【2楼】 bobcat
积分:323
派别:
等级:------
来自:
楼主的意思大概是转换成BCD,我都是用最笨的法子,做除法   2005-08-15,16:27:28 资料 邮件 编辑 删除 【3楼】 zhaofree2001 绿叶子

积分:590
派别:
等级:------
来自:
上次刚写了一个, 转贴过来

long str16to10(unsigned char *s) 

//s字符串最大为"FFFFFFFF" 
//调用示例: 
//   long lRet; lRet=str16to10("a10");   // -- (结果: lRet=2576) 
long lRet; 
unsigned char ch; 

   lRet=0; 
    
    while (*s)   
      { 
      ch=*s; 

      if ((ch >= '0') && (ch <= '9')) ch -= '0';  
      else if ((ch >= 'A') && (ch <= 'F')) ch -= '7';  
      else if ((ch >= 'a') && (ch <= 'f')) ch -= 'W';  

      //lRet=lRet*16+ch; 
      lRet=(lRet<<4)+ch; 

        s ++; 
      } 

   return lRet; 
}
  2005-08-15,16:34:07 资料 邮件 编辑 删除 【4楼】 ermeg
积分:14
派别:
等级:------
来自:
转帖
//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                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);
}