十六进制转十进制c语言
时间: 2023-09-16 19:14:54 浏览: 383
在C语言中,可以使用标准库函数`strtol`将一个十六进制字符串转换为十进制整数。例如:
```c
#include <stdlib.h>
#include <stdio.h>
int main() {
char hex_str[] = "1A";
long dec_num = strtol(hex_str, NULL, 16);
printf("%ld\n", dec_num);
return 0;
}
```
在这个例子中,`hex_str`存储了十六进制字符串"1A",`strtol`函数将其转换为十进制整数并存储在`dec_num`中。最后,使用`printf`函数输出`dec_num`的值。运行程序,输出结果为"26",即十六进制数"1A"对应的十进制数。
相关问题
十六进制转十进制C语言
在C语言中,可以使用`strtol`函数将十六进制字符串转换为十进制数。示例代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex[] = "1A"; // 十六进制字符串
long dec = strtol(hex, NULL, 16); // 将十六进制字符串转换为十进制数
printf("%ld\n", dec); // 输出十进制数
return 0;
}
```
输出结果为:26。
十六进制转十进制c语言代码
十六进制转十进制的过程可以通过乘以16的幂次方来实现,具体步骤如下:
1. 输入16进制数的字符串,例如"3C2A"。
2. 从字符串的右侧开始读取每一位数字(包括A~F),每读取一位就将其转换为对应的十进制数,例如,2对应的十进制数是2,A对应的十进制数是10。
3. 对于第i位数字(从1开始计数),其对应的十进制数为num_i,那么其在十进制中的值为num_i * 16^(i-1)。
4. 将所有位的值相加即可得到最终结果。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int hex_to_dec(char *hex) {
int len = strlen(hex);
int dec = 0;
for (int i = 0; i < len; i++) {
int num = hex[i] - '0'; // 将字符转换为数字
if (num > 9) {
num = num - 7; // A~F对应的数字是10~15
}
dec += num * (1 << (4 * (len - i - 1))); // 16的幂次方
}
return dec;
}
int main() {
char hex_str[] = "3C2A";
int dec = hex_to_dec(hex_str);
printf("%d\n", dec); // 输出结果:15466
return 0;
}
```
阅读全文