输入一个非负的十进制数字,转化成二进制,八进制和十六进制的C语言代码
时间: 2024-10-20 21:07:52 浏览: 48
在C语言中,你可以通过使用`<stdio.h>`库中的函数以及循环来实现将十进制数转换成二进制、八进制和十六进制。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <math.h> // 包含pow函数用于计算指数
void convertDecimalToOthers(int decimal) {
int binary[32], octal[10], hexa[16]; // 存储结果的空间
int i = 0;
// 转换成二进制
while (decimal > 0) {
binary[i++] = decimal % 2;
decimal /= 2;
}
binary[i] = 0; // 添加终止符
printf("Binary: ");
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
// 转换成八进制
octal[0] = decimal;
for (i = 1; decimal != 0; i++) {
decimal /= 8;
octal[i] = decimal % 8;
}
printf("\nOctal: ");
for (j = i - 1; j >= 0; j--) {
printf("%d", octal[j]);
}
// 转换成十六进制
hexa[0] = decimal;
while (decimal != 0) {
hexa[i++] = decimal % 16;
if (hexa[i - 1] < 10) {
hexa[i - 1] += 'A' - 10; // 将10-15转换为字符'A'-'F'
}
decimal /= 16;
}
printf("\nHexadecimal: ");
for (j = i - 1; j >= 0; j--) {
printf("%c", hexa[j] + '0');
}
}
int main() {
int decimalNumber;
printf("Enter a non-negative decimal number: ");
scanf("%d", &decimalNumber);
convertDecimalToOthers(decimalNumber);
return 0;
}
```
阅读全文