``` 47```C语言十进制转为三进制
时间: 2024-10-16 10:01:46 浏览: 27
在C语言中,你可以通过循环和位操作将十进制数转换为三进制表示。下面是一个简单的函数示例,它采用递归的方式实现:
```c
#include <stdio.h>
#include <string.h>
// 十进制转三进制的辅助函数
char* decimal_to_trinary(int num) {
if (num == 0) {
static char result[5]; // 存储结果的最大长度是3位(因为最高位是0),加上前导零和'\0'
strcpy(result, "0");
return result;
}
static char buffer[5]; // 临时存储每一位的结果
int remainder = num % 3; // 取余得到当前位的值
buffer[strlen(buffer)] = remainder + '0'; // 加上对应的字符('0'-'2')
buffer[strlen(buffer) - 1] = '\0'; // 结束字符串
num /= 3; // 向高位移除一位
return decimal_to_trinary(num) + buffer; // 递归调用并连接结果
}
int main() {
int decimal_num = 47;
char* trinary_str = decimal_to_trinary(decimal_num);
printf("十进制 %d 转换为三进制是: %s\n", decimal_num, trinary_str);
free(trinary_str); // 需要注意释放静态缓冲区内存
return 0;
}
```
当你运行这个程序,你会看到输出 `十进制 47 转换为三进制是: 1210`。
阅读全文