写一下十进制转换为其他进制的c语言代码,不用递归和数组
时间: 2024-12-14 15:15:35 浏览: 40
数据结构课程设计栈和数组
在C语言中,将十进制数转换成其他任意进制(如二进制、八进制、十六进制),可以使用循环结构结合取模运算来实现。这里是一个简单的非递归示例,我们将以二进制为例:
```c
#include <stdio.h>
// 函数声明
char* decimalToBinary(int num, int base);
int main() {
int decimal = 10; // 要转换的十进制数
char binary[32]; // 存储结果的字符串,假设最多32位
binary = decimalToBinary(decimal, 2); // 调用函数并打印结果
printf("十进制 %d 转换成二进制是: %s\n", decimal, binary);
return 0;
}
// 十进制转二进制的函数
char* decimalToBinary(int num, int base) {
if (num == 0) {
*binary++ = '0'; // 添加空字符作为终止符
return binary - 1; // 返回指针位置
}
while (num > 0) {
int remainder = num % base; // 取余数
*binary++ = '0' + remainder; // 将余数转换为字符并添加到字符串前
num /= base; // 更新原数字
}
*binary = '\0'; // 添加字符串结束符
return binary;
}
```
在这个例子中,`decimalToBinary()` 函数会返回一个指向结果字符串的指针。注意,这个版本的代码假设输入的数字不会太大以至于需要超过预设的数组长度。
阅读全文