输入一个十进制数,转换为对应的八进制、十六进制、十进制数输出c语言
时间: 2024-10-16 07:17:29 浏览: 42
C语言-顺序栈实现十进制转换为二进制-八进制-十六进制
在C语言中,你可以通过函数来实现将十进制数转换成八进制、十六进制以及返回原始的十进制数。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <math.h> // 包含数学库,用于取整
// 函数定义,接受一个十进制整数作为输入
void decimal_to_octal_hexadecimal(int decimal_num) {
int octal = 0; // 存储八进制结果
char hexadecimal[10] = {'0'}; // 存储十六进制结果,并初始化为0
hexadecimal[10] = '\0'; // 结束字符串标记
// 转换为八进制并输出
while (decimal_num > 0) {
octal = decimal_num % 8;
printf("%d", octal);
decimal_num /= 8;
}
printf("\nOctal: %d\n", octal);
// 转换为十六进制并输出
sprintf(hexadecimal, "%x", decimal_num); // 使用sprintf函数格式化输出
printf("Hexadecimal: %s\n", hexadecimal);
}
int main() {
int input_decimal;
printf("Enter a decimal number: ");
scanf("%d", &input_decimal);
// 调用函数进行转换
decimal_to_octal_hexadecimal(input_decimal);
return 0;
}
```
在这个程序中,`decimal_to_octal_hexadecimal`函数首先将十进制数转换为八进制,然后使用`sprintf`函数将其转换为十六进制字符串。主函数获取用户输入的十进制数,然后调用这个函数。
阅读全文