📅  最后修改于: 2023-12-03 15:33:18.523000             🧑  作者: Mango
在 C 编程语言中,我们可以使用位运算符进行比特操作。位运算符(也称为“二进制运算符”)允许我们将整数转换为二进制形式,然后使用按位运算符操作它们的不同位。
以下是 C 语言中可用的按位运算符:
&
(AND):逐位比较两个运算符,返回结果为1的位。|
(OR):逐位比较两个运算符,返回结果为1的位,或两个运算符中的任何一位。^
(XOR):逐位比较两个运算符,返回结果位1的位,如果两个运算符的某一位为1,则返回0。~
(NOT):对单个运算符的每个位进行操作,反转操作数的比特( ~1 = 0, ~0 = 1)。<<
(left shift):将运算符的每个位向左移动指定数量的位置,右侧以零填充。>>
(right shift):将运算符的每个位向右移动指定数量的位置,左侧以符号位填充。以下是按位运算符在 C 中的一些示例:
#include <stdio.h>
int main() {
unsigned int a = 60; /* 60 = 0011 1100 */
unsigned int b = 13; /* 13 = 0000 1101 */
int result = 0;
result = a & b; /* 12 = 0000 1100 */
printf("a & b = %d\n", result );
result = a | b; /* 61 = 0011 1101 */
printf("a | b = %d\n", result );
result = a ^ b; /* 49 = 0011 0001 */
printf("a ^ b = %d\n", result );
result = ~a; /* -61 = 1100 0011 */
printf("~a = %d\n", result );
result = a << 2; /* 240 = 1111 0000 */
printf("a << 2 = %d\n", result );
result = a >> 2; /* 15 = 0000 1111 */
printf("a >> 2 = %d\n", result );
return 0;
}
输出:
a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2 = 15
这些示例将两个整数变量的值设置为十进制数字,然后使用位运算符操作它们。