<<(左移)、>>(右移)、~(取反)、&(与)、|(或)、^(异或)
```c++
value<<shift
//例子
13<<3 //13左移三位,即13*2^3=104
```
```c++
int x=20;
int y=x<<3; //不会修改x的值
//修改x值得用
x<<=3; //等价于:x=x<<3;
```
同左移,只是符号不同;
value>>shift
//例子
//13右移三位,空白部分用0填充,超过边界的位将被删除,即13/2^3=1(退位取整)
//13转换位二进制:00001101,右移3位后:00000001,即1
13>>3
示例:
int q=43;
q>>=2; //即43/2^2=10
~a;
a&=b; //a=a&b;
a|=b; //a=a|b;
a^=b; //a=a^b;
标准表示 | 替代表示 |
---|---|
& | bitand |
&= | and_eq |
| | bitor |
|= | or_eq |
~ | compl |
^ | xor |
^= | xor_eq |
a^=b; //a=a xor b;
b=~a&b; //b=compl a bitand b;
lottabits=lottabits|bit;
lottabits|=bit;
//解释:
//假设:lottabits=01100101;bit=3=2^3即bit=1000;
//则:lottabits|bit= 01100101 OR
// 00001000
//= 01101101
//将第3位从0变为1
lottabits^=bit; //lottabits=lottabits^bit;
lottabits=lottabits & ~bit;
lottabits&=~bit;
//1.
if(lottabits==bit) //大多数情况下不管用
//2.
if(lottabits & bit==bit)
//3.
if(lottabits & bit) //2的简化版
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。