16进制转十进制 c语言
时间: 2023-11-02 20:06:06 浏览: 473
将16进制数转换为10进制数可以使用C语言中的`strtol`函数。该函数可以将字符串转换为长整型数,其中第二个参数指定了字符串的基数,因此可以将16进制字符串转换为10进制长整型数。
以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex[] = "1A"; // 16进制字符串
long decimal = strtol(hex, NULL, 16); // 转换为10进制长整型数
printf("%ld\n", decimal); // 输出10进制数
return 0;
}
```
输出结果为:26
相关问题
16进制转十进制c语言
以下是两种C语言代码示例,用于将十六进制数转换为十进制:
1. 使用strtol函数将十六进制数转换为十进制数:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char hexNum[10]; // 存储输入的十六进制数
int decNum; // 存储转换后的十进制数
printf("请输入一个十六进制数:");
scanf("%s", hexNum);
// 使用strtol函数将十六进制数转换为十进制数
decNum = strtol(hexNum, NULL, 16);
printf("转换后的十进制数为:%d\n", decNum);
return 0;
}
```
2. 使用atoi函数将十进制数转换为形如0x0000000的十六进制数形式:
```c
#include <stdio.h>
#include <stdlib.h>
void printHex(int decimalValue) {
printf("Hex: 0x%X\n", decimalValue);
}
int main() {
char tmp_decimalValue[10]; // 十进制数
int decimalValue;
printf("请输入一个十进制数:");
scanf("%s", tmp_decimalValue);
decimalValue = atoi(tmp_decimalValue);
printHex(decimalValue);
return 0;
}
```
十进制转16进制C语言代码
可以使用C语言中的sprintf函数将一个十进制数转换为16进制数的字符串表示。代码如下:
```c
#include <stdio.h>
int main()
{
int decimal = 233;
char hex[10];
sprintf(hex, "%X", decimal);
printf("Decimal %d in hex is %s\n", decimal, hex);
return 0;
}
```
输出结果为:
```
Decimal 233 in hex is E9
```
其中,sprintf函数的第一个参数hex表示将转换结果存放在该字符数组中,第二个参数"%X"表示将十进制数转换为大写的16进制数字符串。如果想将结果转换为小写的16进制数字符串,可以使用"%x"作为第二个参数。