概述
将16进制字符串,转为整数类型。
思路
略
源码
本文主要是以C、C++、QT为基础进行编程,运行前简单修改即可。测试入口函数为 void Test_String16_UINT()。
quint32 CovertQchar2Quint32(QChar inputC)
{
char c = inputC.toLatin1();
quint32 rt = 0;
if(c >= '0' && c <= '9')
{
rt = (quint32)c - (quint32)'0';
}
else if(c >= 'a' && c <= 'f')
{
rt = (quint32)c - (quint32)'a' +10;
}
else if(c >= 'A' && c <= 'F')
{
rt = (quint32)c - (quint32)'A' +10;
}
return rt;
}
//将16进制字符串,转为整型
void Test_String16_UINT()
{
QString str = "fb1";
quint32 result = 0;
QChar c;
quint8 len = str.length();
quint8 i = 0;
bool ok;
//去0x,0X,并检查合法性
//略
//"11"=1*16+1;
//21 = 2*16+1;
//234 = 2*16*16 +3*16 +4;
while(i<len)
{
c = str.at(i);
result += CovertQchar2Quint32(c)*pow(16,len-1-i);
i++;
}
qDebug()<<str<<str.toUInt(&ok,16);
qDebug()<<"result:"<<result<<endl;
}
运行结果
“fb1” 4017
result: 4017
这篇博客介绍了如何将16进制字符串转换成整数类型,以C、C++、QT语言为基础,提供了源码实现,并展示了运行结果,例如16进制字符串'fb1'转换后得到整数值4017。

883

被折叠的 条评论
为什么被折叠?



