📅  最后修改于: 2023-12-03 15:06:42.529000             🧑  作者: Mango
在 C 编程语言中,位运算符用来操作二进制位。这些运算符及其含义如下:
| 运算符 | 描述 |
| ------ | ------------------------------------------------------------ |
| &
| 按位与。如果两个相应的二进制位都为 1,则该位的结果值为 1;否则为 0。 |
| |
| 按位或。如果两个相应的二进制位都为 0,则该位的结果值为 0;否则为 1。 |
| ^
| 按位异或。如果两个相应的二进制位值不同,则该位的结果为 1,否则为 0。 |
| ~
| 按位取反。按位取反运算符是一元运算符,用来对一个二进制数按位取反,即将 0 变为 1,将 1 变为 0。 |
| <<
| 左移运算符。将一个数的各二进制位全部左移若干位,高位丢弃,低位补 0。 |
| >>
| 右移运算符。将一个数的各二进制位全部右移若干位,低位丢弃,高位补 0 或补 1,取决于原来的数是正数还是负数。 |
&
按位与运算符 &
的使用方法如下:
result = a & b;
其中 a
和 b
都是整数变量。按位与运算符将两个整数的二进制位一一比较,如果相应位都为 1,则该位的结果为 1;否则为 0。最终的结果是一个整数。
例如,假设 a
和 b
都是 3(即二进制数 11
),则 a & b
的结果为 3,因为 11 & 11
等于 11
。
|
按位或运算符 |
的使用方法如下:
result = a | b;
按位或运算符将两个整数的二进制位一一比较,如果相应位都为 0,则该位的结果为 0;否则为 1。最终的结果是一个整数。
例如,假设 a
和 b
都是 5(即二进制数 101
),则 a | b
的结果为 5,因为 101 | 101
等于 101
。
^
按位异或运算符 ^
的使用方法如下:
result = a ^ b;
按位异或运算符将两个整数的二进制位一一比较,如果相应位值不同,则该位的结果为 1;否则为 0。最终的结果是一个整数。
例如,假设 a
和 b
都是 6(即二进制数 110
),则 a ^ b
的结果为 0,因为 110 ^ 110
等于 000
。
~
按位取反运算符 ~
的使用方法如下:
result = ~a;
按位取反运算符是一元运算符,用来对一个整数按位取反,即将 0 变为 1,将 1 变为 0。最终的结果是一个整数。
例如,假设 a
是 3(即二进制数 11
),则 ~a
的结果为 -4
(即二进制数 11111100
)。
<<
左移运算符 <<
的使用方法如下:
result = a << b;
其中 a
是一个整数,b
是一个整数常量。左移运算符将 a
的二进制位全部左移 b
位,高位丢弃,低位补 0。最终的结果是一个整数。
例如,假设 a
是 5(即二进制数 101
),则 a << 2
的结果是 20(即二进制数 10100
)。
>>
右移运算符 >>
的使用方法如下:
result = a >> b;
其中 a
是一个整数,b
是一个整数常量。右移运算符将 a
的二进制位全部右移 b
位,低位丢弃,高位补 0 或补 1,取决于原来的数是正数还是负数。最终的结果是一个整数。
例如,假设 a
是 -5(即二进制数 11111111111111111111111111111011
),则 a >> 2
的结果是 -2(即二进制数 11111111111111111111111111111110
)。这是因为右移运算符对负数采用的是算数右移,即右移后最高位补 1,而负数的二进制表示最高位为 1。
位运算符是 C 编程语言中用于操作二进制数的特殊运算符。使用这些运算符可以方便地进行位操作,例如将二进制数左移或右移、将二进制数中的某些位取反、将二进制数中的某些位设为 1 或 0 等等。当处理二进制数时,位运算符是必不可少的工具。