十六进制转十进制

十六进制转十进制

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

下面是变量和源码:

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 ()

测试代码:

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 ()

相关推荐
ACP广源盛1392462567310 小时前
(ACP广源盛)GSV6172---MIPI/LVDS 信号转换为 Type-C/DisplayPort 1.4/HDMI 2.0 并集成嵌入式 MCU
c语言·开发语言·单片机·嵌入式硬件·音视频
im_AMBER11 小时前
算法笔记 09
c语言·数据结构·c++·笔记·学习·算法·排序算法
凯芸呢11 小时前
Java中的数组(续)
java·开发语言·数据结构·算法·青少年编程·排序算法·idea
是苏浙14 小时前
零基础入门C语言之C语言内存函数
c语言·开发语言
Metaphor69215 小时前
Java 实现 Word 文档文本框操作:添加与删除详解 (使用 Spire.Doc for Java)
经验分享
August_._15 小时前
【JAVA】基础(一)
java·开发语言·后端·青少年编程
☆cwlulu16 小时前
git分支管理详解
开发语言·git·青少年编程
闭着眼睛学算法16 小时前
【双机位A卷】华为OD笔试之【排序】双机位A-银行插队【Py/Java/C++/C/JS/Go六种语言】【欧弟算法】全网注释最详细分类最全的华子OD真题题解
java·c语言·javascript·c++·python·算法·华为od
海边夕阳200617 小时前
PostgreSQL性能调优:解决表膨胀、索引碎片和无效索引问题
数据库·经验分享·postgresql·性能优化
计算机小手18 小时前
探索 Maxwell:高效捕获 MySQL 数据变更的轻量级中间件
数据库·经验分享·mysql·开源软件