
星海幻梦为您分享以下优质知识
在C语言中,将二进制转换为十进制的方法主要有以下两种:
一、使用字符串处理(推荐方法)
通过逐位遍历二进制字符串,将字符转换为数字并计算十进制值。适用于输入为二进制字符串的情况。
示例代码:
```c
include
include
int binaryToDecimal(char *binary) {
int decimal = 0;
int length = strlen(binary);
for (int i = 0; i < length; 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;
}
```
说明:
1. 使用`scanf`读取二进制字符串(需确保输入仅包含0和1)。
2. 通过`strlen`获取字符串长度,逐位计算十进制值。
3. 返回计算结果。
二、使用位运算(适用于整数输入)
通过位运算符(如`&`、`>
>
`)直接处理整数二进制数,效率较高。
示例代码:
```c
include
int binaryToDecimal(int n) {
int decimal = 0;
while (n >
0) {
int remainder = n % 10; // 获取最低位
decimal += remainder * (1