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

c语言怎么转换二进制

2025-05-02 04:50:07
张老师
张老师已认证

张老师为您分享以下优质知识

在C语言中,二进制转换可通过以下两种方式实现:

一、二进制转十进制(推荐方法)

使用位运算符或自定义函数实现,代码示例如下:

方法一:位运算符实现

```c

include

int convertBinaryToDecimal(long long n) {

int decimalNumber = 0;

int i = 0;

while (n >

0) {

int remainder = n % 2;

decimalNumber += remainder * pow(2, i);

n /= 2;

i++;

}

return decimalNumber;

}

int main() {

long long binaryNumber;

printf("输入一个二进制数: ");

scanf("%lld", &binaryNumber);

printf("二进制数 %lld 转换为十进制为 %dn", binaryNumber, convertBinaryToDecimal(binaryNumber));

return 0;

}

```

方法二:自定义函数实现(逐位计算)

```c

include

include

int convertBinaryToDecimal(long long n) {

int decimalNumber = 0;

int i = 0;

while (n != 0) {

int remainder = n % 10;

decimalNumber += remainder * pow(2, i);

n /= 10;

i++;

}

return decimalNumber;

}

int main() {

long long binaryNumber;

printf("输入一个二进制数: ");

scanf("%lld", &binaryNumber);

printf("二进制数 %lld 转换为十进制为 %dn", binaryNumber, convertBinaryToDecimal(binaryNumber));

return 0;

}

```

二、十进制转二进制

整数部分:

除2取余法

- 示例:168 → 10101000(二进制)

- 代码示例:

```c

include

void decimalToBinary(int n) {

if (n == 0) {

printf("0");

return;

}

int binary = {0};

int index = 31;

while (n >

0) {

binary[index] = n % 2;

n /= 2;

index--;

}

for (int i = index; i >

= 0; i--) {

printf("%d", binary[i]);

}

printf("n");

}

int main() {

int decimalNumber;

printf("输入一个十进制数: ");

scanf("%d", &decimalNumber);

decimalToBinary(decimalNumber);

return 0;

}

```

小数部分:

乘2取整法

- 示例:0.125 → 0.001(二进制)

- 代码示例:

```c

include

void decimalToBinary(double n) {

char binary = {0};

int index = 0;

while (n >

0) {

int bit = (int)(n * 2);

binary[index++] = bit % 2;

n -= bit / 2;

}

for (int i = index - 1; i >

= 0; i--) {

printf("%d", binary[i]);

}

printf("n");

}

int main() {

double decimalNumber;

printf("输入一个十进制数: ");

scanf("%lf", &decimalNumber);

decimalToBinary(decimalNumber);

return 0;

}

```

说明

二进制转十进制:推荐使用位运算符或自定义函数,代码简洁且效率较高。

十进制转二进制:整数部分采用除2取余法,小数部分采用乘2取整法,需注意精度问题。