用c语言实现数制的转换
时间: 2024-02-15 12:01:51 浏览: 142
好的,下面是用C语言实现数制转换的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int num, base, i, j;
char digits[] = "0123456789ABCDEF"; // 用于表示16进制的字符数组
printf("请输入一个十进制整数:");
scanf("%d", &num);
printf("请输入要转换的进制:");
scanf("%d", &base);
// 定义一个动态分配的数组,用于保存转换后的结果
char *result = (char*)malloc(sizeof(char) * 32);
i = 0;
// 对于0的情况,直接输出0
if (num == 0) {
result[i++] = '0';
}
else {
// 将十进制数转换为目标进制
while (num > 0) {
result[i++] = digits[num % base];
num /= base;
}
}
// 将转换后的结果翻转过来
for (j = 0; j < i / 2; j++) {
char temp = result[j];
result[j] = result[i - j - 1];
result[i - j - 1] = temp;
}
// 输出转换后的结果
printf("转换后的结果为:%s\n", result);
free(result);
return 0;
}
```
该代码实现了将一个十进制数转换为任意进制的功能。用户可以输入一个十进制整数和目标进制,程序会将其转换为目标进制,并输出转换后的结果。其中,digits数组用于表示16进制的字符。
阅读全文