用c语言编写函数funD(),用于将10进制正整数转化为十六进制整数
时间: 2024-01-24 19:17:27 浏览: 23
下面是一个使用 C 语言编写的将 10 进制正整数转换为 16 进制整数的函数 funD() 的示例代码:
```c
#include <stdio.h>
void funD(unsigned int n) {
char hex[17] = "0123456789ABCDEF";
char result[32];
int i = 0, j;
while (n > 0) {
result[i++] = hex[n % 16];
n /= 16;
}
for (j = i - 1; j >= 0; j--) {
printf("%c", result[j]);
}
}
int main() {
unsigned int n;
printf("Enter a decimal number: ");
scanf("%u", &n);
printf("Hexadecimal equivalent: ");
funD(n);
printf("\n");
return 0;
}
```
在上面的代码中,我们使用了一个 char 数组 `hex` 来存储十六进制数的字符,然后使用了一个 char 数组 `result` 来存储转换后的十六进制数的每一位字符。接下来使用循环将每一位从低位到高位逐个转换,最后将转换后的结果从高位到低位输出。
相关问题
C语言将十进制正整数转化为十六进制
下面是一个将十进制正整数转换为十六进制的C语言代码:
```c
#include <stdio.h>
void decimal_to_hexadecimal(int decimal_num) {
int remainder, quotient;
char hexadecimal_num[100];
int i = 0;
quotient = decimal_num;
while (quotient != 0) {
remainder = quotient % 16;
if (remainder < 10)
hexadecimal_num[i++] = 48 + remainder;
else
hexadecimal_num[i++] = 55 + remainder;
quotient = quotient / 16;
}
printf("十六进制数为: ");
for (int j = i - 1; j >= 0; j--)
printf("%c", hexadecimal_num[j]);
}
int main() {
int decimal_num;
printf("请输入一个十进制正整数: ");
scanf("%d", &decimal_num);
decimal_to_hexadecimal(decimal_num);
return 0;
}
```
运行结果:
```
请输入一个十进制正整数: 255
十六进制数为: FF
```
用c语言编写程序,将十进制正整数转成十六进制字符串输出。
好的,这个问题我可以回答。以下是将十进制正整数转成十六进制字符串的C语言程序:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
unsigned int num; // 最大值为4294967295,使用unsigned int类型
char hex[9] = {'\0'}; // 存储十六进制字符串,最多8位
printf("请输入一个十进制正整数:");
scanf("%u", &num);
sprintf(hex, "%08X", num); // 使用sprintf函数将num转成十六进制字符串
printf("转换后的十六进制字符串为:%s\n", hex);
return 0;
}
```
该程序使用了sprintf函数将十进制正整数转成十六进制字符串,并使用printf函数将结果输出到控制台。程序中使用了unsigned int类型来存储输入的十进制正整数,使用char数组来存储十六进制字符串,最大长度为8位。