
雨后初晴为您分享以下优质知识
在C语言中,二进制转换可以通过多种方法实现,具体方法取决于转换方向和数据类型。以下是常见的转换方法及示例代码:
一、二进制转十进制
按权展开法
通过将二进制数的每一位乘以2的幂次求和实现。
```c
include
int binaryToDecimal(unsigned long long n) {
int decimalNumber = 0;
for (int i = 0; i < 64; i++) {
decimalNumber += (n & 1) * (1LL >
= 1;
}
return decimalNumber;
}
int main() {
unsigned long long binary = 110110111;
printf("Binary %llx is Decimal: %dn", binary, binaryToDecimal(binary));
return 0;
}
```
位操作符法
使用位移和按位与操作逐位提取二进制位。
```c
include
void printBinary(int num) {
for (int i = 31; i >
= 0; i--) {
printf("%d", (num >
>
i) & 1);
}
printf("n");
}
int main() {
int num = 10;
printf("The binary representation of %d is: ", num);
printBinary(num);
return 0;
}
```
二、十进制转二进制
除2取余法
通过不断除以2并记录余数实现。
```c
include
void decimalToBinary(int n) {
if (n == 0) {
printf("0");
return;
}
char binary = "";
while (n >
0) {
binary[32 - i] = (n % 2) + '0';
n /= 2;
}
printf("%sn", binary);
}
int main() {
int num = 168;
printf("Decimal %d is Binary: ", num);
decimalToBinary(num);
return 0;
}
```
位操作符法
使用位移和按位与操作直接生成二进制字符串。
```c
include
include
void printBinary(int num) {
for (int i = 31; i >
= 0; i--) {
printf("%d", (num & (1