C语言,编写一个吧十进制数转化成S进制(S=2,8,16)输出的函数,在main 中调用这个函数并输出结果
时间: 2025-06-24 19:41:21 浏览: 8
### C语言实现十进制转二进制、八进制和十六进制
以下是完整的C语言代码示例,用于将十进制数分别转换为二进制、八进制和十六进制,并在 `main` 函数中调用这些函数并输出结果。
#### 完整代码示例
```c
#include <stdio.h>
// 将十进制转换为任意进制(2, 8 或 16)
void decimalToBase(int num, int base) {
const char digits[] = "0123456789ABCDEF"; // 数字到字符映射表
if (num >= base) {
decimalToBase(num / base, base);
}
printf("%c", digits[num % base]);
}
// 主函数
int main() {
int decimal;
// 输入十进制数
printf("请输入一个十进制数: ");
scanf("%d", &decimal);
// 转换为二进制
printf("二进制表示: ");
decimalToBase(decimal, 2); // 基础参数设置为2
printf("\n");
// 转换为八进制
printf("八进制表示: ");
decimalToBase(decimal, 8); // 基础参数设置为8
printf("\n");
// 转换为十六进制
printf("十六进制表示: ");
decimalToBase(decimal, 16); // 基础参数设置为16
printf("\n");
return 0;
}
```
---
#### 功能说明
上述代码通过递归方式实现了十进制数向其他进制的转换功能。核心逻辑如下:
- 使用数组 `"0123456789ABCDEF"` 来处理不同进制下的数值显示[^1]。
- 当基础参数分别为 `2`, `8`, 和 `16` 时,可以完成对应的二进制、八进制和十六进制转换[^2]。
- 在递归过程中,先计算高位部分再打印低位部分,从而自然形成逆序输出的效果[^3]。
---
#### 示例运行结果
假设用户输入的十进制数为 `25`,则程序输出如下:
```
请输入一个十进制数: 25
二进制表示: 11001
八进制表示: 31
十六进制表示: 19
```
---
阅读全文
相关推荐


















