写一个C语言程序,二进制,八进制和十进制之间的互相转换
时间: 2024-10-15 08:28:38 浏览: 36
C语言 二进制、八进制、十进制、十六进制转换
在C语言中,你可以创建一个简单的函数来实现二进制、八进制和十进制之间的转换。以下是三个独立的函数示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 十进制转二进制
void decimalToBinary(int decimal) {
int binary[32], i = 0;
while (decimal > 0) {
binary[i] = decimal % 2;
decimal /= 2;
i++;
}
printf("Decimal %d in Binary is ", decimal);
for (int j = i - 1; j >= 0; j--)
printf("%d", binary[j]);
}
// 十进制转八进制
void decimalToOctal(int decimal) {
char octal[10];
sprintf(octal, "%o", decimal);
printf("Decimal %d in Octal is %s\n", decimal, octal);
}
// 十进制转十六进制
void decimalToHexadecimal(int decimal) {
char hexa[10];
sprintf(hexa, "0x%x", decimal);
printf("Decimal %d in Hexadecimal is %s\n", decimal, hexa);
}
int main() {
int choice, number;
// 用户选择转换类型
printf("\nChoose conversion:\n1. Decimal to Binary\n2. Decimal to Octal\n3. Decimal to Hexadecimal\n");
scanf("%d", &choice);
if (choice == 1) {
printf("Enter a decimal number: ");
scanf("%d", &number);
decimalToBinary(number);
} else if (choice == 2) {
printf("Enter a decimal number: ");
scanf("%d", &number);
decimalToOctal(number);
} else if (choice == 3) {
printf("Enter a decimal number: ");
scanf("%d", &number);
decimalToHexadecimal(number);
} else {
printf("Invalid choice.\n");
}
return 0;
}
```
这个程序首先让用户选择转换类型,然后输入数字进行相应的转换。注意,对于较大的数字,需要处理溢出情况,并且此版本仅适用于非负整数。
阅读全文