您的位置:首页 > 其它

十六进制字符串转十进制整数

2017-12-01 23:19 204 查看

十六进制字符串转十进制整数

 

编写一个函数,函数接收一个字符串,是由十六进制数组成的一组字符串,函数的功能是把接到的这组字符串转换成十进制数字.并将十进制数字返回。

 

#include <iostream>

using namespace std;

// 十六进制字符串的最大长度
#define MAX_HEX_STR_LEN 8

bool hexToDec(char shex[], int & idec)
{
size_t i = 0, len = 0;
int mid = 0;

len = strlen(shex);
if (len > MAX_HEX_STR_LEN) {
return false;
}

idec = 0;
for (i = 0; i < len; i++) {
mid = 0;
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;
}

// 移位表示变为2的n次方倍
mid <<= ((len - i - 1) << 2);
idec += mid;
}
return true;
}

int main(int argc, char * argv[])
{
int a = 0;
char s[] = "fae3";
hexToDec(s, a);
cout << a << endl;

return 0;
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: