在C语言中,二进制数的表示方式如下:
二进制字面量表示 从C99标准开始,支持以`0b`或`0B`(不区分大小写)开头,后跟0和1的二进制数字。例如:
```c
int binary_num = 0b1010; // 十进制10
int negative_num = -0b110010; // 十进制-50
```
若省略前缀`0b`或`0B`,则默认为十进制数。
位运算与移位操作
可通过位运算符(如按位与、或、异或)或移位运算符(左移、右移)操作二进制数。例如:
```c
int a = 0b1010; // 10
int b = a << 2; // 左移2位后为101000(40)
```
位段(Bitfield)
在结构体中定义特定位数的二进制数,例如2位无符号整数:
```c
struct {
unsigned int a : 2;
unsigned int b : 2;
} bf;
bf.a = 3; // 二进制11
bf.b = 5; // 二进制101
```
输出二进制数
使用`printf`函数以`%b`格式化输出十进制数对应的二进制表示,例如:
```c
int decimalNumber = 10;
printf("Binary representation of %d: %bn", decimalNumber, decimalNumber);
```
总结:
C语言中二进制数可通过字面量前缀、位运算、位段或格式化输出实现,具体使用场景根据需求选择。