
何老师为您分享以下优质知识
在C语言中,将二进制数转换为十进制数主要有以下两种常见方法,具体实现方式如下:
一、使用 `atoi` 函数(推荐)
这是最简洁的方法,适用于二进制数以字符串形式输入的情况。
```c
include
include
int binaryToDecimal(char *binary) {
int decimal = 0;
for (int i = 0; binary[i] != '0'; i++) {
int bit = binary[i] - '0'; // 将字符转换为数字
decimal = decimal * 2 + bit; // 计算对应位的十进制值
}
return decimal;
}
int main() {
char binary;
printf("请输入一个二进制数: ");
scanf("%s", binary);
int decimal = binaryToDecimal(binary);
printf("对应的十进制数为: %dn", decimal);
return 0;
}
```
说明:`atoi` 函数将二进制字符串逐位转换为数字,并按权展开计算十进制值。
二、逐位计算法(手动实现)
适用于需要更高控制力的场景,支持处理任意长度的二进制数。
```c
include
include
int binaryToDecimal(const char *binary) {
int decimal = 0;
int power = 0;
for (int i = strlen(binary) - 1; i >
= 0; i--) {
int bit = binary[i] - '0'; // 将字符转换为数字
decimal += bit * (1