16进制字符串转数字(C/C++,VB/VB.net,C#)

本文介绍了如何在多种编程语言中实现十六进制与数字之间的相互转换。覆盖C/C++、VB、VB.net及C#等语言,并提供了具体的代码示例。

这个问题看是很简单,但是在不同语言中实现的方式却千差万别,如果不知道方法,还真是麻烦,我就是在 C# 中遇到该问题,让我费了很大的周折,才在 msdn 查到。
一、 16 进制字符串转数字
1 C/C++
I 、最简单的办法: sscanf(“12AB”,,”%x”,&lngHex); // 字符也可以为 ”0x12AB”
II 、有个朋友,自行编写函数实现了该功能,据说速度比 sscanf 快:
BOOL HexToDec( LPCTSTR shex,int& idec )
{
int i,mid;
int len = lstrlen( shex );
if( len>8 ) return FALSE;
mid = 0; idec = 0;
for( i=0;i<len;i++ )
{
if( shex[i]>='0'&&shex[i]<='9' ) mid = shex[i]-'0';
else if( shex[i]>='a'&&shex[i]<='f' ) mid = shex[i] -'a' +10;
else if( shex[i]>='A'&&shex[i]<='F' ) mid = shex[i] -'A' +10;
else return FALSE;
mid <<= ((len-i-1)<<2);
idec |= mid;
}
return TRUE;
}
2 VB
LngHex=val(“&H12AB”)
3 VB.net
LngHex=val(“&H12AB”)
4 C#
lngHex=Convert.ToInt32(“0x12AB”,16); // 也可以直接写 12AB
Msdn 上有一个条目:“如何:将十六进制字符串转换为数字”
使用 ToInt32 ,第一个参数为要转换的字符串,第二个参数表示数字的基数,十六进制为 16
此外不仅支持 16 进制, 2 8 10 进制都支持
二、数字转 16 进制字符串
1 C/C++
Printf(“%x”,1234);
2 VB
Hex(1234)
3 VB.net
Hex(1234)
Int(1234).ToString(“X4”)
4 C#
((int)1234).ToString(“X4”);
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值