十六进制转十进制

十六进制转十进制

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

下面是变量和源码:

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

相关推荐
赵谨言2 小时前
基于单片机的视力保护仪设计与实现
经验分享·毕业设计
吃个早饭3 小时前
2025年第十六届蓝桥杯大赛软件赛C/C++大学B组题解
c语言·c++·蓝桥杯
qwertyuiop_i4 小时前
pe文件二进制解析(用c/c++解析一个二进制pe文件)
c语言·c++·pe文件
chennalC#c.h.JA Ptho4 小时前
lubuntu 系统详解
linux·经验分享·笔记·系统架构·系统安全
明月看潮生4 小时前
青少年编程与数学 02-019 Rust 编程基础 10课题、函数、闭包和迭代器
开发语言·青少年编程·rust·编程与数学
明月看潮生4 小时前
青少年编程与数学 02-019 Rust 编程基础 09课题、流程控制
开发语言·算法·青少年编程·rust·编程与数学
我叫珂蛋儿吖6 小时前
[redis进阶六]详解redis作为缓存&&分布式锁
运维·c语言·数据库·c++·redis·分布式·缓存
周Echo周7 小时前
20、map和set、unordered_map、un_ordered_set的复现
c语言·开发语言·数据结构·c++·算法·leetcode·list
chennalC#c.h.JA Ptho7 小时前
kubuntu系统详解
linux·数据库·经验分享·postgresql·系统安全
安装虚拟机的老师傅7 小时前
【2025最新】Windows系统装VSCode搭建C/C++开发环境(附带所有安装包)
c语言·windows·vscode·其他