将它的八进制,十进制与十六获取程序输入的一个非负整数,并输出它的八进制、十进制以及十六进制数。进制数据分别输出,每个输出数据之间用一个空格隔开,c语言
时间: 2024-12-08 11:14:31 浏览: 14
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制
5星 · 资源好评率100%
在C语言中,你可以使用`scanf`函数获取用户输入的非负整数,然后通过转换函数将其转换为八进制、十进制和十六进制。以下是实现这个功能的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 转换函数,将整数从一个进制转到另一个进制
int convert(int num, int fromBase, int toBase) {
char* str = itoa(num, NULL, toBase);
int result = strtol(str, NULL, fromBase);
free(str);
return result;
}
int main() {
int number;
printf("请输入一个非负整数: ");
scanf("%d", &number);
// 转换并打印
printf("八进制: %o ", convert(number, 10, 8));
printf("十进制: %d ", number); // 因为十进制无需转换,直接输出
printf("十六进制: %x ", convert(number, 10, 16));
return 0;
}
```
在这个程序中,我们首先通过`scanf`获取用户的输入,并保存在变量`number`中。然后,分别调用`convert`函数,将十进制转换为八进制和十六进制,使用`itoa`函数生成字符串,再用`strtol`函数进行实际的转换。最后,输出结果时,十进制部分直接显示。
阅读全文