用c语言编写函数funD(),用于将10进制正整数转化为十六进制整数
时间: 2024-01-24 08:17:27 浏览: 76
下面是一个使用 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语言编写函数,将任意十进制正整数转换为二进制,在main函数中输入任意整数,调用函数完成转换,在main函数中输出转换后的值。
以下是将任意十进制正整数转换为二进制的C语言函数实现:
```c
#include <stdio.h>
void decToBin(int n) {
int binaryNum[32];
int i = 0;
while (n > 0) {
binaryNum[i] = n % 2;
n = n / 2;
i++;
}
for (int j = i - 1; j >= 0; j--)
printf("%d", binaryNum[j]);
}
int main() {
int n;
printf("Enter a decimal number: ");
scanf("%d", &n);
printf("Binary number is: ");
decToBin(n);
return 0;
}
```
在此实现中,我们首先定义了一个函数 `decToBin`,该函数接收一个十进制正整数 `n` 作为参数。函数将该数字转换为二进制格式,并将其存储在一个整数数组 `binaryNum` 中。然后我们使用一个循环遍历该数组并输出其元素,从而得到转换后的二进制数。
在 `main` 函数中,我们首先提示用户输入一个十进制正整数,然后使用 `scanf` 函数将其读入到变量 `n` 中。接下来,我们调用函数 `decToBin`,将用户输入的数字作为参数传递给该函数。最后,我们在主函数中输出转换后的二进制数字。
注意,以上实现中假设二进制数字的位数不超过 32 位。如果需要支持更长的二进制数字,请相应地调整代码。
阅读全文