
面试李组长为您分享以下优质知识
在C语言中,二进制转十进制的方法主要有以下三种实现方式,结合权威性和时效性信息整理如下:
一、使用`atoi`函数(推荐)
`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;
}
```
二、逐位计算法(通用方法)
通过逐位处理二进制数,使用乘2加权求和的方式实现转换,适用于任意长度的二进制数。
```c
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;
}
```
三、位运算符法(高效实现)
利用位运算符(如`&`、`>
>
`)逐位提取二进制位并计算十进制值,效率较高。
```c
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 += bit