使用c语言实现 一个 16进制的字符串转成 16进制数的函数的源码
时间: 2024-04-22 08:26:15 浏览: 117
下面是使用C语言实现将16进制字符串转换成16进制数的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
unsigned int hexStringToHexNumber(const char *hexString) {
unsigned int hexNumber = 0;
int i = 0;
// 跳过可能的0x前缀
if (hexString[0] == '0' && (hexString[1] == 'x' || hexString[1] == 'X')) {
i = 2;
}
// 逐个字符处理
while (hexString[i]) {
char c = hexString[i];
// 将字符转换成对应的16进制数
if (c >= '0' && c <= '9') {
hexNumber = hexNumber * 16 + (c - '0');
} else if (c >= 'A' && c <= 'F') {
hexNumber = hexNumber * 16 + (c - 'A' + 10);
} else if (c >= 'a' && c <= 'f') {
hexNumber = hexNumber * 16 + (c - 'a' + 10);
} else {
// 出现非法字符,返回0
return 0;
}
i++;
}
return hexNumber;
}
int main() {
const char *hexString = "1A";
unsigned int hexNumber = hexStringToHexNumber(hexString);
printf("%u\n", hexNumber); // 输出 26
return 0;
}
```
在上述代码中,我们定义了一个名为`hexStringToHexNumber`的函数,该函数接受一个指向16进制字符串的指针,并返回对应的16进制数。函数内部使用循环遍历字符串的每个字符,并根据字符的值进行相应的转换。最后,在`main`函数中,我们调用`hexStringToHexNumber`函数并打印结果。输出结果为转换后的16进制数26。
阅读全文