数据结构用C语言完成数制的转换编程题。要求如下: (1)将十进制数N转换为八进制数 (2)将十进制数N转换为二进制数 (2)使用256、500两个十进制数对(1)(2)进行测试
时间: 2024-11-06 08:24:38 浏览: 22
数据结构实现之数制转换
在C语言中,我们可以使用循环和除法操作来完成数制之间的转换。以下是分别实现八进制和二进制转换的函数示例:
```c
#include <stdio.h>
#include <string.h>
// 函数用于将十进制数转换为八进制字符串
char* decimalToOctal(int n) {
char octal[100];
int i = 0;
while (n != 0) {
octal[i++] = (n % 8) + '0';
n /= 8;
}
octal[i] = '\0'; // 添加空字符终止字符串
// 反转字符串,因为八进制是从最低位开始的
倒序(octal);
return octal;
}
// 函数用于将十进制数转换为二进制字符串
char* decimalToBinary(int n) {
char binary[100];
while (n > 0) {
binary[--i] = n % 2 + '0';
n /= 2;
}
binary[i] = '\0';
return binary;
}
// 冒泡排序函数(这里仅为了演示如何反转字符串)
void reverse(char str[]) {
int len = strlen(str);
for (int i = 0; i < len / 2; ++i) {
char temp = str[i];
str[i] = str[len - i] = temp;
}
}
int main() {
int N1 = 256, N2 = 500;
printf("八进制转换结果: ");
printf("%s\n", decimalToOctal(N1));
printf("%s\n", decimalToOctal(N2));
printf("二进制转换结果: ");
printf("%s\n", decimalToBinary(N1));
printf("%s\n", decimalToBinary(N2));
return 0;
}
```
在这个程序中,`decimalToOctal` 和 `decimalToBinary` 分别负责十进制到八进制和二进制的转换,并通过`reverse`函数来反转得到正确的顺序。主函数中使用了256和500这两个数字作为例子。
阅读全文