C语言十六进制转换为十进制代码
时间: 2024-08-13 12:08:04 浏览: 105
C语言实现十六进制数据转十进制数据
在C语言中,将十六进制数转换为十进制数,你可以使用标准库函数`strtol`或手动解析字符串。以下是两种方法的示例:
**使用`strtol`函数:**
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char hex_string[] = "1A"; // 你的十六进制字符串
int decimal_num;
// 将字符串转换为整数
if (sscanf(hex_string, "%x", &decimal_num) == 1) {
printf("Hexadecimal number %s is decimal: %d\n", hex_string, decimal_num);
} else {
printf("Invalid hexadecimal number.\n");
}
return 0;
}
```
**手动解析字符串:**
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char hex_string[] = "1A";
int decimal_num = 0;
bool in_hex = false; // 标记是否在处理十六进制字符
for (char *p = hex_string; *p != '\0'; p++) {
if (isxdigit(*p)) {
if (!in_hex) {
in_hex = true;
decimal_num = decimal_num * 16;
}
decimal_num += (*p - '0'); // 大小写数字
} else if (in_hex) {
in_hex = false;
}
}
printf("Hexadecimal number %s is decimal: %d\n", hex_string, decimal_num);
return 0;
}
```
阅读全文