在C语言中,进行进制转换通常涉及以下步骤:
读取用户输入 :获取用户想要转换的十进制数以及目标进制。转换过程:
使用数学运算和数组来存储转换后的结果。
输出结果:
以用户可读的格式输出转换后的进制数。
```c
include include void decToBin(int n) { int bin; int i = 0; while (n > 0) { bin[i] = n % 2; n = n / 2; i++; } printf("Binary: "); for (int j = i - 1; j >= 0; j--) { printf("%d", bin[j]); } printf("\n"); } void decToOct(int n) { int oct; int i = 0; while (n != 0) { oct[i] = n % 8; n = n / 8; i++; } printf("Octal: "); for (int j = i - 1; j >= 0; j--) { printf("%d", oct[j]); } printf("\n"); } void decToHex(int n) { char hex; int i = 0; while (n != 0) { hex[i] = n % 16; if (hex[i] < 10) { printf("%d", hex[i] + '0'); } else { printf("%X", hex[i] - 10 + 'A'); } n = n / 16; i++; } printf("Hexadecimal: "); for (int j = i - 1; j >= 0; j--) { printf("%c", hex[j]); } printf("\n"); } int main() { int num, base; printf("Enter a decimal number: "); scanf("%d", &num); printf("Enter the base to convert to (2-16): "); scanf("%d", &base); if (base < 2 || base > 16) { printf("Invalid base. Please enter a base between 2 and 16.\n"); return 1; } printf("Decimal %d in base %d is: ", num, base); decToBin(num); decToOct(num); decToHex(num); return 0; } ``` 代码解释: 函数定义 `decToBin`:将十进制数转换为二进制数。 `decToOct`:将十进制数转换为八进制数。 `decToHex`:将十进制数转换为十六进制数。 读取用户输入的十进制数和目标进制。 调用相应的转换函数进行转换。 输出转换结果。 建议: 确保输入的进制在2到16之间,否则输出错误信息。 可以根据需要扩展程序,添加更多的进制转换功能。 使用标准库函数和数组来处理转换过程,确保代码的可读性和可维护性。主函数