输入一个十进制整数a,然后输入一个n(n为2、8或16),将a转换为n进制数据输出用C语言
时间: 2024-10-25 11:16:28 浏览: 31
在C语言中,你可以通过函数实现这个功能。这里有一个简单的示例,展示了如何将十进制整数转换成二进制、八进制或十六进制:
```c
#include <stdio.h>
#include <string.h>
// 十进制转其他进制
void convert(int a, int base) {
char result[50]; // 预留足够的空间存储结果
sprintf(result, "%o", a); // 对于二进制 (base = 2)
printf("二进制: %s\n", result);
if(base == 8) {
sprintf(result, "%o", a); // 对于八进制 (直接用sprintf, 因为'o'会自动转换)
printf("八进制: %s\n", result);
} else if(base == 16) {
sprintf(result, "0x%x", a); // 对于十六进制, 使用'0x'前缀
printf("十六进制: %s\n", result);
}
}
int main() {
int decimal;
printf("请输入一个十进制整数: ");
scanf("%d", &decimal);
int choice;
printf("请选择转换进制(2-二进制, 8-八进制, 16-十六进制): ");
scanf("%d", &choice);
convert(decimal, choice);
return 0;
}
```
在这个程序中,`convert`函数接收十进制数和目标进制作为参数,使用`sprintf`函数结合相应的占位符(`%o`用于二进制和八进制,`%x`用于十六进制)进行格式化输出。
阅读全文