用c语言,编写函数funD(n),用于将十进制正整数n(不超过6位)转换为十六进制整数。 主函数如下:#include “stdio.h”char hex[8]=“0X”;main(){ unsigned int n; printf(“输入一个正整数:”); scanf(“%u",&n); funD(n); printf(“%d的十六进制整数为%s”,n,hex);}
时间: 2023-06-16 17:04:32 浏览: 49
以下是用 C 语言编写的函数 `funD(n)`,可以将十进制正整数转换为十六进制整数:
```c
#include <stdio.h>
void funD(unsigned int n) {
int i = 0, j;
char hex[8] = "0X";
while (n > 0) {
int r = n % 16;
if (r < 10) {
hex[i+2] = '0' + r;
} else {
hex[i+2] = 'A' + r - 10;
}
n /= 16;
i++;
}
for (j = i+1; j < 8; j++) {
hex[j] = '0'; // 在前面补 0
}
printf("%s", hex);
}
```
其中,`funD(n)` 函数的参数 `n` 是一个十进制正整数,返回值为无。函数内部使用了循环来不断地将 `n` 除以 16 并取余数,然后将余数转换为十六进制符号(0-9 和 A-F),保存在数组 `hex` 中。最后,将 `hex` 数组中的字符输出即可。需要注意,在输出十六进制数时,要在前面加上 "0X" 前缀,因此 `hex` 数组的长度为 8。在不足 8 位的情况下,在前面补 0。
相关问题
用c语言编写函数funD(),用于将10进制正整数转化为十六进制整数
下面是一个使用 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语言编写程序,将十进制正整数n转换成十六进制字符串逆序输出。要求用到函数进行转换。
好的,这是一个关于C语言编程的问题。我可以用sprintf函数将十进制正整数n转换成十六进制字符串,再使用strrev函数将字符串逆序输出。代码如下:
```
#include <stdio.h>
#include <string.h>
int main() {
int n;
char hex[100];
printf("请输入一个十进制正整数n:");
scanf("%d", &n);
sprintf(hex, "%X", n);
strrev(hex);
printf("转换成十六进制字符串的结果为:%s\n", hex);
return 0;
}
```
希望对你有帮助!接下来,有什么其他问题需要我回答吗?