C语言代码 从键盘输入一个十进制数值,请转换为对应进制的数值。(转换过程请使用函数)
时间: 2024-12-18 21:31:07 浏览: 70
在C语言中,你可以通过编写一个函数来实现十进制到其他进制的转换。这里是一个简单的示例,它会提示用户输入一个十进制数,并将其转换为二进制、八进制和十六进制。我们将使用`stdio.h`库获取用户输入,`stdlib.h`库处理内存分配,以及`itoa`函数将整数转换为字符串。
```c
#include <stdio.h>
#include <stdlib.h>
// 自定义函数,将十进制转为任意进制字符串
char* convert(int decimal, int base) {
char *result = (char*) malloc(sizeof(char) * 30); // 预估最大长度为30
sprintf(result, "%o", decimal); // 对于八进制, 使用 %o
if (base == 16) {
result[strlen(result) - 1] = 'h'; // 添加'H'标识十六进制
result[strlen(result)] = '\0'; // 结尾添加空字符
} else {
result[strlen(result) - 2] = 'B'; // 对于二进制, 添加'B'标识二进制
result[strlen(result) - 1] = '\0';
}
return result;
}
int main() {
int decimal_num;
printf("请输入一个十进制数:");
scanf("%d", &decimal_num);
// 转换为二进制
char *binary = convert(decimal_num, 2);
printf("二进制形式:%s\n", binary);
free(binary); // 释放内存
// 转换为八进制
char *octal = convert(decimal_num, 8);
printf("八进制形式:%s\n", octal);
free(octal);
// 转换为十六进制
char *hexadecimal = convert(decimal_num, 16);
printf("十六进制形式:%s\n", hexadecimal);
free(hexadecimal);
return 0;
}
```
当你运行这个程序,它会显示用户输入十进制数对应的二进制、八进制和十六进制表示。
阅读全文
相关推荐


















