在C语言中,二进制数可以通过以下两种方式表示:
二进制字面量:
在数字前加上前缀`0b`或`0B`,后跟二进制数字。例如:
```c
int x = 0b1010; // 二进制数1010,十进制数10
int y = 0B1111; // 二进制数1111,十进制数15
```
使用位运算符:
通过位运算符如`&`、`|`、`^`、`~`、`>>`等来操作二进制数,或者使用循环和位掩码来手动输出二进制表示。例如:
```c
int num4 = 10; // 二进制数1010
int num5 = 5; // 二进制数0101
int result1 = num4 & num5; // 二进制数0000,十进制数0
int result2 = num4 | num5; // 二进制数1111,十进制数15
int result3 = num4 ^ num5; // 二进制数1111,十进制数15
int result4 = ~num4; // 二进制数0101,十进制数-11
int result5 = num4 << 2; // 二进制数101000,十进制数40
```
使用`printf`函数的格式化字符串:
通过指定格式化字符串为`"%b"`,并传入十进制数作为参数来输出对应的二进制数。例如:
```c
int num3 = 12;
printf("二进制表示: %b\n", num3); // 输出: 二进制表示: 1100
```
使用`itoa`函数:
将十进制整数转换为二进制字符串。例如:
```c
include include void itoa(int n, char *s, int base) { char *p; for (p = s; *p != 0; ++p) { int digit = *p - '0'; if (digit >= base) { *p = toupper(digit / base + '0'); } else { *p = digit + '0'; } } } int main() { int i; char s; scanf("%d", &i); itoa(i, s, 2); printf("该数转换为二进制是: [%s]\n", s); return 0; } ``` 这些方法可以根据具体需求选择使用,以方便地在C语言中表示和操作二进制数。