自学内容网 自学内容网

十六进制转十进制

十六进制转十进制

在玩编程的时候常会碰到十六进制转换的问题。对于专业的大佬大咖这不是问题,小人物总会有些麻烦。我在研究调色板时也遇到进制转换问题。前些时在本站发了十进制转十六进制的博文,今再写十六进制转十进制的转换方法。供大家参考。


下面是变量和源码:
   string hex$, a$ ;
   int dec, k ;
   Int nlen ;
hex2dec (){  
//传入十六进制数转换为十进制数
//传入 string  hex$ 输出 int dec 
       // print "Input hex string = ", hex$ ;
        nlen=len (hex$);      //字串长度
        dec=0 ;                 //init 置初值 0
 //开始计算 >
      for (i=0; i<nlen; i++){
             a$=subString (hex$, i, 1);
 //字符串转为数值的方法很多,我采用最简单直观的写法,字母大小写都可以。多人采用个位起反向计算十进制数,我的方法是高权位起降幂计算乘方累加。此方法就一个计算式,简单直观,方便使用。
        if (a$=="0") k=0 ;
        if (a$=="1") k=1 ;
        if (a$=="2") k=2 ;
        if (a$=="3") k=3 ;
        if (a$=="4") k=4 ;
        if (a$=="5") k=5 ;
        if (a$=="6") k=6 ;
        if (a$=="7") k=7 ;
        if (a$=="8") k=8 ;
        if (a$=="9") k=9 ;
        if (a$=="A"||a$=="a") k=10 ;
        if (a$=="B"||a$=="b") k=11 ;
        if (a$=="C"||a$=="c") k=12 ;
        if (a$=="D"||a$=="d") k=13 ;
        if (a$=="E"||a$=="e") k=14 ;
        if (a$=="F"||a$=="f") k=15 ;
         kn=nlen-i-1 ;     //高权位起降幂计算
         dec=dec+(int)(k*pow(16,kn)) ;   //乘方累加
              }       // return dec
 }//hex2dec ()

64e95847e9c5455bbe6645072fd9353c.png 

测试代码:
test (){  //test hex to dec 
      hex$="8f" ;
      print "Input:hex string = ", hex$;
      hex2dec ();
      print "计算结果:dec = ", dec ;
      print "  ";

      hex$="df" ;
      print "Input:hex string = ", hex$;
      hex2dec ();
      print "计算结果:dec = ", dec ;
      print "  ";

      hex$="ffff" ;
      print "Input:hex string = ", hex$;
      hex2dec ();
      print "计算结果:dec = ", dec ;
      print "  ";

      hex$="ffFFff" ;
      print "Input:hex string = ", hex$;
      hex2dec ();
      print "计算结果:dec = ", dec ;
      print "  ";

      hex$="18dd" ;
      print "Input:hex string = ", hex$;
      hex2dec ();
      print "计算结果:dec = ", dec ;
      print "  ";

}//test ()


原文地址:https://blog.csdn.net/baidu_41801770/article/details/139195511

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!