二进制转十进制:C 语言实现18


在计算机科学中,经常需要将数字从一种进制表示转换为另一种进制表示。二进制和十进制是两个最常用的进制系统。二进制是基础 2 系统,其中只有 0 和 1 两个数字,而十进制是基础 10 系统,其中有 0 到 9 十个数字。

从二进制转换为十进制的过程称为二进制转十进制转换。可以通过两种主要方法实现此转换:递归方法和迭代方法。

递归方法

递归方法涉及将问题分解为较小的子问题,并使用相同的逻辑递归地求解这些子问题。以下是用 C 语言实现的递归二进制转十进制转换函数:```c
int binaryToDecimal(int binary) {
if (binary == 0) {
return 0;
} else {
return (binary % 10 + binaryToDecimal(binary / 10) * 2);
}
}
```

函数说明:* `binary`:要转换的二进制数。
* `binaryToDecimal(binary / 10)`:递归地调用函数来转换二进制数的其余部分。
* `binary % 10`:获取二进制数的末尾数字。

这个递归函数不断地将二进制数除以 10,并计算其余数,直到二进制数为 0。然后,它将每个余数乘以 2 的幂,并将其添加到结果中,从而得到转换后的十进制数。

迭代方法

迭代方法涉及使用循环来逐步计算转换。以下是用 C 语言实现的迭代二进制转十进制转换函数:```c
int binaryToDecimal(int binary) {
int decimal = 0, i = 0, remainder;
while (binary != 0) {
remainder = binary % 10;
decimal += remainder * pow(2, i);
i++;
binary /= 10;
}
return decimal;
}
```

函数说明:* `decimal`:转换后的十进制数。
* `i`:用于跟踪 2 的幂。
* `remainder`:二进制数的末尾数字。

这个迭代函数不断地对二进制数执行以下步骤:1. 获取二进制数的末尾数字。
2. 将末尾数字乘以 2 的幂。
3. 将结果添加到转换后的十进制数中。
4. 将二进制数除以 10,去除末尾数字。
5. 增加 2 的幂的次数。

示例

以下是一些演示二进制转十进制转换的示例:```c
int binary1 = 1010;
int decimal1 = binaryToDecimal(binary1);
printf("二进制数 %d 转换为十进制数 %d", binary1, decimal1);
int binary2 = 1111;
int decimal2 = binaryToDecimal(binary2);
printf("二进制数 %d 转换为十进制数 %d", binary2, decimal2);
```

输出:```
二进制数 1010 转换为十进制数 10
二进制数 1111 转换为十进制数 15
```

二进制转十进制转换是在计算机科学中一种常见操作。本文介绍了用 C 语言实现递归和迭代两种方法。了解这些方法对于理解数字表示转换的底层机制至关重要。

2024-12-02


上一篇:C 语言中函数间通信和交互

下一篇:当符号遇上数字:用 C 语言输出带正负号的数值