按位运算符

按位运算符

内存是由很多格子组成,每个格子可以存储 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)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注