请用C语言写一个程序,完成功能:输入十进制整数N和待转换的进制x(2、8、16),分别代表十进制N转换成二进制、八进制和十六进制,输出对应的结果。十六进制中A~F用大写字母表示
时间: 2024-10-11 17:10:13 浏览: 63
进制转换:输入一个十进制数n,把它转化为r进制数输出
以下是一个C语言程序,用于实现输入十进制整数N及其转换的目标进制x(2、8、16),并输出对应的二进制、八进制和十六进制结果:
```c
#include <stdio.h>
#include <string.h>
// Function to convert decimal to binary, octal and hexadecimal
void convertDecimal(int n, int base) {
char* result[3]; // Array to store the results
memset(result, 0, sizeof(result)); // Initialize all elements to zero
// Convert to binary
sprintf(result[0], "%d", n);
if (base == 2) {
printf("该数转换为二进制为:%s\n", result[0]);
} else {
printf("该数转换为二进制为:%s\n", result[0]);
}
// Convert to octal
sprintf(result[1], "%o", n);
printf("该数转换为八进制为:%s\n", result[1]);
// Convert to hexadecimal (upper case letters)
sprintf(result[2], "0x%X", n);
printf("该数转换为十六进制为:%s\n", result[2]);
}
int main() {
int N, x;
printf("请输入十进制整数N:");
scanf("%d", &N);
printf("请输入要转换的进制(2, 8, 或 16):");
scanf("%d", &x);
// Check if the input bases are valid
if (x != 2 && x != 8 && x != 16) {
printf("无效的进制选择。\n");
return 1;
}
convertDecimal(N, x); // Call the conversion function
return 0;
}
```
在这个程序中,我们定义了一个`convertDecimal`函数来执行实际的转换。用户会被提示输入十进制整数和要转换的进制,然后程序会调用该函数进行转换,并按照给定的进制格式打印结果。
阅读全文