用c语言设计程序依次输出数据1234的十进制、八进制、十六进制;
时间: 2024-12-16 14:22:19 浏览: 4
顺序栈、链栈将10进制转为2、8、16进制源码
5星 · 资源好评率100%
在C语言中,你可以使用内置的函数`itoa()`、`octotoa()`和`htoa()`将整数转换成相应的字符串形式。然而,这些函数在标准库中并不直接存在,你需要包含一些非标准头文件如`<string.h>`,并且它们在某些编译环境中可能不可用。所以,这里我们可以使用自定义函数或者第三方库(如宽字符支持的`wcstoul()`等)来实现。
下面是一个简单的示例,展示如何手动完成这个转换:
```c
#include <stdio.h>
#include <stdlib.h>
// 自定义十进制转其他进制的函数
char* convert_to_octal(int num) {
char octal[10];
int i = 0;
while (num > 0) {
octal[i++] = '0' + num % 8;
num /= 8;
}
octal[i] = '\0'; // 添加终止符
return octal;
}
char* convert_to_hexadecimal(int num) {
char hexadecimal[3]; // 两位十六进制
hexadecimal[1] = num & 15 ? ('0' + num & 15) : '0';
num >>= 4;
hexadecimal[0] = num ? ('0' + num) : '0';
hexadecimal[2] = '\0'; // 添加终止符
return hexadecimal;
}
int main() {
int decimal_num = 1234;
printf("十进制: %d\n", decimal_num);
printf("八进制: %s\n", convert_to_octal(decimal_num));
printf("十六进制: %s\n", convert_to_hexadecimal(decimal_num));
return 0;
}
```
阅读全文