C语言中&的用法
在C语言中,&运算符是一个位操作符,用于执行位与操作。
位与操作
位与操作对两个二进制数的每一位进行比较,如果两个位都是1,则结果为1;否则,结果为0。
立即学习“C语言免费学习笔记(深入)”;
语法
result = expression1 & expression2;
其中,
expression1和
expression2是两个整数表达式,
result也是一个整数变量。
用法
&运算符通常用于以下场景:
检查特定位的值:使用位掩码(一个只包含1和0的二进制数)与一个整数比较,可以检查特定二进制位的值。例如:if ((number & 0b10000000) != 0) {
// 最高位为 1
}
设置或清除位:使用位掩码与一个整数进行按位与操作,可以设置或清除特定位的值。例如:number |= 0b10000000; // 设置最高位为 1 number &= ~0b10000000; // 清除最高位提取位:使用位掩码与一个整数进行按位与操作,可以提取特定位的位值。例如:
bit_value = number & 0b00000001; // 提取最低位掩码非零值:使用
&运算符将一个整数与非零值(如-1)进行按位与操作,可以掩码掉非零值。这可以用于检查一个值是否为非零。例如:
if (number & -1) {
// number 不为 0
}注意:
&运算符不能用于浮点数。 &运算符的优先级高于+、-、*、/运算符,但低于!=、==、等比较运算符。