C语言中 输入一个非负整数,输出它的八进制,十进制以及十六进制数
时间: 2024-10-03 10:04:42 浏览: 69
在C语言中,你可以通过标准输入流(stdin)获取用户的输入,然后利用内置函数`atoi()`, `itoa()`和`.toHexString()`来分别将整数转换成八进制、十进制和十六进制形式。这里需要注意的是,C语言本身并没有提供直接的`toXXX()`函数,你需要借助库函数如`stdlib.h`中的`sprintf()`来实现。
以下是简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h> // 使用atoi和itoa需要这个头文件
void convert(int num) {
int octal = 0; // 存储八进制结果
char decimal[20] = ""; // 存储十进制结果
char hex[20] = ""; // 存储十六进制结果
// 转换为八进制
sprintf(octal_str, "%o", num);
octal = atoi(octal_str);
// 转换为十进制
itoa(num, decimal, 10); // 这里decimal是个字符数组,实际操作前需加上长度限制
// 转换为十六进制
sprintf(hex, "%x", num);
printf("八进制: %d\n", octal);
printf("十进制: %s\n", decimal);
printf("十六进制: %s\n", hex);
}
int main() {
int input;
printf("请输入一个非负整数: ");
scanf("%d", &input);
if (input >= 0) { // 检查是否是非负整数
convert(input);
} else {
printf("输入错误,只接受非负整数。\n");
}
return 0;
}
```
在这个示例中,我们首先检查用户输入是否为非负整数,然后调用`convert`函数完成转换并打印结果。
阅读全文