C++实现⼗六进制字符串转换成int整形值的⽰例
⼗六进制(简写为hex或下标16)在数学中是⼀种逢16进1的进位制。⼀般⽤数字0到9和字母A到F(或a~f)表⽰,其中:A~F 表⽰10~15,这些称作⼗六进制数字。
开发中经常需要把16进制字符串转换成整形,写了个个代码供⼤家参考下:
#include <stdio.h>
#include <string.h>
//字符转换成整形
int hex2int(char c)
16进制字符串转16进制数组{
if ((c >= 'A') && (c <= 'Z'))
{
return c - 'A' + 10;
}
else if ((c >= 'a') && (c <= 'z'))
{
return c - 'a' + 10;
}
else if ((c >= '0') && (c <= '9'))
{
return c - '0';
}
}
int main()
{
//⼗六进制字符串转换成整形
const char* hexStr = "EFA0";
int data[32] = {0};
int count = 0;
for (int i=0; i<strlen(hexStr); i+=2)
{
int high = hex2int(hexStr[i]);  //⾼四位
int low = hex2int(hexStr[i+1]); //低四位
data[count++] = (high<<4) + low;
}
/
/打印输出
for (int i=0; i<strlen(hexStr)/2; i++)
{
printf("%d ", data[i]);
}
return 1;
}
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。如果你想了解更多相关内容请查看下⾯相关链接

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。