用C语言数组写一个各种进制相互转换的系统
时间: 2023-11-28 20:03:59 浏览: 32
好的,我可以提供一个简单的各种进制相互转换的系统的代码,使用C语言数组实现。以下是一个将任意进制数转换为其他进制数的示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char number[32];
int from_base, to_base, len, i, j, decimal = 0, remainder;
int result[32], k = 0;
printf("请输入一个数字:");
scanf("%s", number);
printf("请输入该数字的进制:");
scanf("%d", &from_base);
printf("请输入要转换成的进制:");
scanf("%d", &to_base);
len = strlen(number);
for (i = len - 1; i >= 0; i--) {
if (number[i] >= '0' && number[i] <= '9') {
decimal += (number[i] - '0') * pow(from_base, len - 1 - i);
} else if (number[i] >= 'A' && number[i] <= 'Z') {
decimal += (number[i] - 'A' + 10) * pow(from_base, len - 1 - i);
}
}
while (decimal > 0) {
remainder = decimal % to_base;
if (remainder >= 0 && remainder <= 9) {
result[k] = remainder + '0';
} else if (remainder >= 10 && remainder <= 35) {
result[k] = remainder + 'A' - 10;
}
decimal /= to_base;
k++;
}
printf("转换后的数字为:");
for (j = k - 1; j >= 0; j--) {
printf("%c", result[j]);
}
printf("\n");
return 0;
}
```
这个程序首先要求用户输入一个数字、原始进制和目标进制。然后,程序将该数字转换为十进制数,并使用while循环将其转换为目标进制,并将每个进制位存储在数组中。最后,使用for循环遍历数组并输出转换后的数字。您可以根据需要修改此代码以支持其他进制数的转换。