十六进制转十进制

十六进制转十进制

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

下面是变量和源码:

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

相关推荐
wuyk5555 分钟前
25. 函数指针表:用查表替代 switch-case,打造高效可维护的嵌入式状态机
c语言·stm32·单片机·mcu·51单片机
时间的拾荒人10 小时前
C语言字符函数与字符串函数完全指南
c语言·开发语言
持力行11 小时前
C/C++ 中的 char*:它标识数组吗?为什么能用下标访问?
c语言·c++
BomanLj12 小时前
NSK W1202KA-3P-C3Z5 不锈钢精密滚珠丝杠技术规范
经验分享·规格说明书
小陈的代码之路14 小时前
回文链表(LeetCode 234)C语言最佳解题思路
c语言·leetcode·链表
aaaameliaaa15 小时前
计算斐波那契数(递归、迭代)(1,1,2,3,5.....)
c语言·开发语言·笔记·算法·排序算法
BomanGe415 小时前
NSK百吨级超重载高速静音丝杠技术详解
经验分享·规格说明书
GMICLOUD16 小时前
GMI Cloud 登陆 WAIC 2026 领航舞台,透传全栈全球化 AI 基建,联合媒体及多家企业发布AI出海白皮书
经验分享
Bomangedd16 小时前
NSK滚珠丝杠RNFTL3232A3S技术手册
经验分享·规格说明书
郭泽斌之心16 小时前
给 AI 交易助手做 LLM 网关:多通道负载均衡 + 静默失败自动切换
人工智能·经验分享·ea·mt5·fay数字人·easydeal