### ~~这段话其实很好理解~~
1. $(1<<i)$ 怎么理解
```cpp
<< 位进制运算
举个栗子来说:
1<<1 = 2
1<<2 = 4
1<<3 = 8
也就是说:
```
$1<<n = 2^n$
2. $M-=1<<i$ 怎么理解
其实懂了上面的你也懂了:
简化:$M=M-(2^i)$
3. $bool1$ & ( $1<<i$ ) 怎么理解
若该表达式为真,则bool返回值为1
反之返回0
### 那么,整个表达式的意思就是:
else if(M>=(1<<i)&&(bool1&(1<<i))) { M-=1<<i; ans+=1<<i; }
若 $M>=2^i$ 并且 $bool1$ & $(2^n)$ 为真的话,
$M=M-(2^i)$
$ans=ans+2^i$
### 自己理解吧!
by shaoziqi @ 2022-01-23 14:32:37
@[shaoziqi](/user/562804)
怎么硕呢,你说的这些东西我都知道,我想知道他表达的意思,不过我现在差不多都懂了,感谢回答!
by killer_queen4804 @ 2022-01-23 15:28:03