C语言中用与运算符&来表示AND。
基本格式如下:
a&b 表示将a和b中各位按位进行与运算
举例如下:
int a=5, b=7printf("%d", a&b) // 输出a&b的运算结果,输出为7
逻辑与&&多用于判断两个或两个以上条件同时成立使用
例如if(a>9
&&
a!=5)
这里条件就是a要大于并且a要不等于5的条件才会执行if下面的语句,
至于and这个是不是库函数的里面定义的我不知道,但会用&&也没必要去弄and
&:是与的意思
&&:是且的意思
|:是或的意思
||:也叫或
&: 两个数字位操作 AND。或者取某个变量的地址,或声明引用。
对 bit:(0 &x ) = 0( 1 &x ) = x
&&:两个 bool 值的“并且”。( false &&x ) = false(true &&x)= x
|:两个数字 位操作 OR。对 bit: ( 0 | x ) = x( 1 | x ) = 1
||:两个bool 值的“或”。( true || x ) = true( false || x ) = x
逻辑运算与按位运算,不一样的两种运算。
按位运算是把整数的每个二进制位与另一个整数对应的每个二进制位进行运算,是整数到整数的运算。逻辑运算其实是布尔值到布尔值的运算,只不过在C当中,所有非零整数都理解true,所有0都理解为false。所以4 &&2 == 1,其实是4是true,2也是true,与的结果是true,所以是1。而按位操作,4是0b0100, 2是0b0010,它们没有重叠的二进制位,所以结果是4 &2 == 0