按位运算符
内存是由很多格子组成,每个格子可以存储 1 或者 0。八个格子是一个字节,一个格子是一个位(bit)。
按位运算符看起来像前面介绍的逻辑运算符,但实际上与逻辑运算符完全不同。这些运算符称为按位运算符,因为它们操作的是整数值中的位。一共有六个。
这些运算符都只能用于整数类型。~ 运算符是一元运算符,只处理一个操作数,其它都是二元运算符。
按位与运算符 &
按位与运算符 & 合并操作数的对应位。如果两个位都是 1,结果位就是 1,否则结果位就是 0。
比如下面变量:
int x = 13;
int y = 6;
int z = x & y; // 处理 x和y的位Code language: JavaScript (javascript)
第三条语句将会进行如下操作(可以理解为并且的概念。两个条件都成立结果才是真,否则就是假):
int 类型四个字节,这里只选择一个字节来演示,因为其它字节都是 0,太长了。
注意:不要混淆了按位与和逻辑与,这是两个完全不同的概念:x & y 和 x && y。
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int x = 13;
int y = 6;
int z = x & y;
printf("%d",z);
return 0;
}Code language: PHP (php)