C++位运算:与,或,非(& , | , !)
1. 与 (&):
(双目运算符)
与运算是指将a和b两个十进制变量转化成二进制后,同位比较,都为1取值为1,否则为0,例:
(10)10 & (20)10 = (1010)2 & (10100)2
= 10100
& 1010
-------------
00000
(00000)2=(0)2=(0)10
下面代码实现一下:
#include<bits/stdc++.h> using namespace std; int main(){ int a,b; cin>>a>>b; int c = a & b; printf("%d",c); return 0; }
样例输入:
5 10
样例输出:
0
----------------------------------------------------不怎么华丽的分隔线--------------------------------------------------
2.或(|):
(双目运算符)
或运算是指将a和b两个十进制变量转化成二进制后,同位比较,其中有1位或都为1,就取值为1,否则为0,例:
(10)10 | (20)10 = (1010)2 | (10100)2
= 10100
|| 1010
-------------
11110
(11110)2=(30)10
同样代码实现一下:
#include<bits/stdc++.h> using namespace std; int main(){ int a,b; cin>>a>>b; int c = a | b; printf("%d",c); return 0; }
样例输入:
5 10
样例输出:
15
----------------------------------------------------不怎么华丽的分隔线--------------------------------------------------
3.非(!):
(单目运算符)
这个最好记,如果a不等于0,!a=false,a=true,否则!a=true,a=false.
!10=0(false) ,!0=1(true)
这里就不水代码了.
下一篇:
C语言For循环实现“九九乘法表”