进制之间的转换非常有趣,例如将十进制的7转化为二进制为111,转化为三进制为21。 请编写程序将十进制整数转换成指定进制。c语言编写
时间: 2024-09-23 08:16:54 浏览: 17
在C语言中,我们可以使用循环和除法操作来实现十进制到任意进制的转换。以下是一个简单的函数示例,用于将十进制整数转换成给定的基数(如二进制、八进制、十六进制等):
```c
#include <stdio.h>
#include <string.h>
// 函数原型,输入十进制整数和目标基数,返回对应进制的字符串表示
char* convertDecimalToBase(int decimal, int base);
// 实现函数
char* convertDecimalToBase(int decimal, int base) {
char result[64]; // 预留足够大的空间存储转换结果,最大位数为10进制的63(10^6 - 1)
if (decimal == 0) {
result[0] = '0';
return result;
}
int i = 0;
while (decimal > 0) {
result[i++] = decimal % base + '0'; // 对于非十进制,需要加上相应的字符映射,如二进制的'0'->'0', '1'
decimal /= base; // 更新除法余数
}
// 将多余的0放在前面,保证输出顺序从高位到低位
for (int j = strlen(result) - 1; j >= 0 && result[j] == '0'; j--)
result[j] = '\0';
result[j+1] = '\0'; // 添加终止符
return result;
}
int main() {
int decimal = 7;
int targetBase = 2; // 示例:将十进制7转为二进制
printf("十进制 %d 转换为 %d 进制的结果是: %s\n", decimal, targetBase, convertDecimalToBase(decimal, targetBase));
return 0;
}
```
运行上述代码,会得到"十进制 7 转换为 2 进制的结果是: 111"。