用C语言数组写一个各种进制之间相互转换的函数
时间: 2024-03-25 07:40:33 浏览: 120
不同进制数之间的转换
好的,我可以为你编写一个将任意进制的数转换为十进制数,以及将十进制数转换为任意进制数的函数。以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
// 将任意进制的数转换为十进制数,参数依次为:数值字符串、原进制数
int baseToDec(char str[], int base) {
int len = strlen(str);
int dec = 0;
for (int i = 0; i < len; i++) {
int digit = str[i] - '0';
if (digit >= base) {
digit = str[i] - 'A' + 10; // 大写字母转为数字
}
dec = dec * base + digit;
}
return dec;
}
// 将十进制数转换为任意进制的数,参数依次为:十进制数、目标进制数
void decToBase(int dec, int base) {
if (dec == 0) {
return;
}
decToBase(dec / base, base);
int digit = dec % base;
if (digit < 10) {
printf("%d", digit);
} else {
printf("%c", digit - 10 + 'A'); // 数字转为大写字母
}
}
int main() {
char str[100];
int base1, base2;
printf("请输入待转换的数值:");
scanf("%s", str);
printf("请输入原进制数:");
scanf("%d", &base1);
printf("请输入目标进制数:");
scanf("%d", &base2);
int dec = baseToDec(str, base1);
printf("转换后的值为:");
decToBase(dec, base2);
printf("\n");
return 0;
}
```
你可以将上述代码复制到 C 语言的编译器中运行,输入待转换数值、原进制数和目标进制数,即可得到转换后的结果。注意,此函数只支持转换 2~36 进制之间的数值。
阅读全文