如何在C语言中将十六进制转换为十进制?
时间: 2024-10-16 08:18:39 浏览: 137
C语言 进制转换
在C语言中,可以使用标准库函数`strtol()`或者`scanf()`配合转换说明符`%x`来进行十六进制到十进制的转换。下面是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex_num[20]; // 储存十六进制字符串
long decimal; // 存储结果
printf("Enter a hexadecimal number: ");
fgets(hex_num, sizeof(hex_num), stdin); // 防止换行字符干扰
hex_num[strcspn(hex_num, "\n")] = '\0'; // 删除fgets读取的换行
if(scanf("%lx", &decimal) == 1) { // %lx用于读取无符号长整型,即无符号十六进制
printf("The decimal equivalent is: %ld\n", decimal);
} else {
printf("Invalid hexadecimal input.\n");
}
return 0;
}
```
这段代码首先获取用户输入的十六进制字符串,然后通过`scanf()`函数尝试将其转换为无符号长整型,成功则能得到对应的十进制数值。
阅读全文