C语言怎么实现进制转换
时间: 2024-10-11 12:10:13 浏览: 27
C语言中有两种基本的进制转换方式:
1. **十进制转其他进制**[^1]:
```c
// 定义一个函数用于十进制到任意两位以内进制的转换
void decimalToBase(int M, int N, int a[]) {
int i, j;
for (i = 0; M != 0; i++) {
a[i] = M % N;
M /= N;
}
for (j = i - 1; j >= 0; j--) {
printf("%d", a[j]);
}
}
// 示例:十进制53转二进制
int M = 53;
int N = 2;
int a[n];
decimalToBase(M, N, a);
```
2. **字符串形式的进制数转十进制**:
```c
// 使用字符串处理,适用于将输入的任意进制数如"1010"转为十进制
int binaryToDecimal(char a[]) {
int sum = 0, cnt = 0;
for (int i = strlen(a) - 1; i >= 0; i--) {
if (a[i] >= '0' && a[i] <= '9') {
sum += (a[i] - '0') * pow(2, cnt);
}
cnt++;
}
return sum;
}
// 示例:将字符串"1010"转为十进制
char input[] = "1010";
printf("%llu", binaryToDecimal(input));
```
阅读全文