用C语言写十进制转十六进制
时间: 2023-11-17 18:04:39 浏览: 50
以下是用C语言实现十进制转十六进制的代码:
```c
#include <stdio.h>
void decToHex(int num) {
char hex[100];
int i = 0;
while (num != 0) {
int temp = 0;
temp = num % 16;
if (temp < 10) {
hex[i] = temp + 48;
i++;
} else {
hex[i] = temp + 55;
i++;
}
num = num / 16;
}
printf("转换为十六进制为: ");
for (int j = i - 1; j >= 0; j--) {
printf("%c", hex[j]);
}
}
int main() {
int num;
printf("请输入一个十进制数: ");
scanf("%d", &num);
decToHex(num);
return 0;
}
```
相关问题
C语言的十进制转十六进制
你好,关于C语言的十进制转十六进制,可以使用sprintf函数实现。具体用法为:使用sprintf将十进制数保存到一个字符串中,再通过sscanf函数将字符串中的数转换为十六进制数,最后打印即可。如下所示:
```c
int value = 255; // 十进制数
char str[10]; // 保存字符串
sprintf(str, "%d", value); // 将十进制数转为字符串
int hex; // 保存十六进制数
sscanf(str, "%x", &hex); // 将字符串中的数转为十六进制数
printf("0x%x", hex); // 打印结果,注意加上前缀 0x
```
希望能解决您的问题。
C语言实现十进制转十六进制
实现十进制转十六进制的 C语言 代码如下:
```c
#include <stdio.h>
int main() {
int decimal, remainder, quotient;
char hex[100];
int i = 1, j;
printf("Enter decimal number: ");
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("Hexadecimal number: ");
for (j = i - 1; j > 0; j--)
printf("%c", hex[j]);
return 0;
}
```
解释:该程序通过不断地对十进制数进行除以16的操作,得到商和余数,余数即为十六进制数的一位,将余数转换为字符存储在数组中,最后倒序输出数组即可得到十六进制数。