首页  > 教育解读  > c语言十进制怎么转为二进制

c语言十进制怎么转为二进制

2025-05-20 17:37:54
面试李组长
面试李组长已认证

面试李组长为您分享以下优质知识

在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