十六进制转十进制写成C语言代码
时间: 2023-12-25 18:04:35 浏览: 30
可以使用C语言中的`strtol`函数将十六进制字符串转换为十进制整数。具体实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex_str[] = "1A"; // 十六进制字符串
long decimal_num = strtol(hex_str, NULL, 16); // 转换为十进制整数
printf("Hexadecimal %s is equal to decimal %ld\n", hex_str, decimal_num);
return 0;
}
```
输出结果为:
```
Hexadecimal 1A is equal to decimal 26
```
相关问题
c语言十进制转十六进制
C语言中,我们可以使用sprintf函数将十进制数转换为十六进制数。sprintf函数的用法跟printf函数很相似,只是参数类型变为字符数组。
例如,我们要将十进制数10转换为十六进制数,可以写成:
```c
#include <stdio.h>
int main()
{
int num = 10;
char hex[10];
sprintf(hex, "%X", num);
printf("10的十六进制为%s\n", hex);
return 0;
}
```
输出结果为:
```
10的十六进制为A
```
如果要将多个十进制数转换为十六进制数,可以使用循环语句来分别对每个数进行转换,然后将结果存储到一个字符数组中,最后一次打印出来即可。
```c
#include <stdio.h>
int main()
{
int nums[] = {10, 16, 255, 1024, 2048};
int len = sizeof(nums) / sizeof(nums[0]);
char hex[50];
for (int i = 0; i < len; i++) {
sprintf(hex + i * 2, "%02X", nums[i]);
}
printf("转换结果为%s\n", hex);
return 0;
}
```
输出结果为:
```
转换结果为0A10FF400800
```
可以看到,每两个字符合为一个十六进制数,最后结果中的顺序与原数组相同。
请为我写一份基于c语言的十进制转十六进制代码
请参考以下基于C语言的十进制转十六进制代码:
```
#include <stdio.h>
int main() {
int decimal, remainder, quotient, i = 1, j;
char hex[100];
printf("请输入一个十进制数: ");
scanf("%d", &decimal);
quotient = decimal;
while (quotient != 0) {
remainder = quotient % 16;
if (remainder < 10)
hex[i++] = 48 + remainder;
else
hex[i++] = 55 + remainder;
quotient = quotient / 16;
}
printf("十进制数 %d 转换成十六进制为: ", decimal);
for (j = i - 1; j > 0; j--)
printf("%c", hex[j]);
printf("\n");
return 0;
}
```
该代码接收用户输入的一个十进制数,将其转换为十六进制并输出。