位运算运算符
| 含义 | 运算符 | 格式
———————————————————————————
| 按位与 | & | A&B
| 按位或 | | | A|B
逻辑运算符| 按位异或 | ^ | A^B
| 按位取反 | ~ | A~B
———————————————————————————
移位运算符| 右移 | >> | A>>B
| 左移 | << | A<<B
———————————————————————————
与运算
与运算简介:
与运算是计算机中的一种基本的逻辑方式,表示符号为&。
这是一个双目运算符,参加运算的2个数据,按二进制位进行与运算。
运算规则:0&0=0,0&1=0,1&0=0,1&1=1。
即:2位同时为1,结果才为1,否则为0。
与运算用途
1、用于将变量中的某些位清零。
例:
请将一个int类型的低八位清零,而其他位保持不变。
int x=x&0xffffff00;
2、判断奇偶性。
代码:
if(x&1)
cout<<"是奇数。";
else
cout<<"是偶数。";
或运算
或运算简介
或运算是计算机中的一种基本的逻辑方式,表示符号为|。
这是一个双目运算符,参加运算的2个数据,按二进制位进行或运算。
运算规则:0|0=0,0|1=1,1|0=1,1|1=1。
即:2位同时为0,结果才为0,否则为1。
或运算用途
1、用来将变量中某些位置变成1。
例:
请将一个int类型的低八位全部设为1,而其余位保持不变。
int x;
cin>>x;
x=x|0xff;
异或运算
异或运算简介
或运算是计算机中的一种基本的逻辑方式,表示符号为^。
这是一个双目运算符,参加运算的2个数据,按二进制位进行异或运算。
运算规则:0^0=0,0^1=1,1^0=1,1^1=0。
即:当2位相同时,结果才为0,否则为1。
异或运算用途
1、用来将变量中的某些位翻转。2、用来保留变量中某些位的值。
例:
请将一个int类型的低三位全部翻转,而其余位保持不变。
int x;
cin>>x;
x=x^0b111;
左移运算
左移运算简介
语法格式:x<<n,x是需要移位的数字,n是需要移位的次数。
运算规则:按二进制形式把所有数字向左移动相应的位数。
移位时,高位移出(舍弃),低的空位补0,相当于乘以2的n次方。
当某个数左移1位相当于将这个数乘2。
右移运算
右移运算简介
语法格式:x>>n,x是需要移位的数字,n是需要移位的次数。
运算规则:按二进制形式把所有数字向右移动相应的位数。
移位时,低位移出(舍弃),高的空位补0,相当于除以2的n次方。
当某个数右移1位相当于将这个数除2。
取反运算
取反运算简介
这是一个单目运算符,将操作中的2进制位0变为1,1变为0。
例:
110101B取反:1010B
11111111B取反:0B