zhuhuatd 发表于 2009-7-18 00:46:25

请教,如何实现十六进制数转换成十进制数?谢谢

2个文本框,1个文本框显示的是16进制数,如A0,我想把这个文本框的数取出来,然后转换成十进制数显示在另一个文本框中,即160。

liujinkui 发表于 2009-7-21 21:04:07

#将十六进制数2AB转换成十进制数:
#(2AB)16 = 2×162 + 10×161 + 11×160 = (683)10
str="2AB";
static sum;
num=length ( str );
str1=toupper ( str );
static j;
j=0;
sum=0;
function chengji(j)
{   auto rs=16;
        rs^=j;
        return rs;
}
for(i=num;i>0;i--)
{       
        chr=substr (str, i,1);
        if(chr>="A"&&chr<="F")
        {
                count=(ascii(chr)-55)*chengji(j);
        }
        else if(chr>=0&&chr<=9)
        {
                count=chr*chengji(j);
        }
        sum=sum+count;
        report_msg(sum);
        j++;
}
pause (sum);

利用WR实现.
16进制的小数没有考虑,有兴趣的可以修改再上传
页: [1]
查看完整版本: 请教,如何实现十六进制数转换成十进制数?谢谢