1.左移就是乘2
(1)要防止爆int(比如2的n次方写成1LL<<n)
2.右移就是整除2(向下取整)
(1)对于无符号数左边补零对有符号数左边补符号位(其实就是左边原本是什么,我们就补什么)
(2)注意是算数右移(对于大多数编辑器)不是逻辑右移,是向下取整不是向零取整,比如-5>>1为-3,5>>1为2
3.按位与就是全真为1,用来查询(看某一位在不在)
4.按位或就是有真即1,用来设置(把某一位强行变1)
(1)比如我让x与二进制下后四位全为一的数进行按位或,那x的二进制下后四位就会变成一
5.按位异或就是不同为1,用来翻转(把不同的反过来)
(1)不进位的加法(就像小学的竖式加法,只是把10进制变成二进制而已)
a^a=0
a^0=a
(2)用法变量交换
a=a^b
b=a^b
a=a^b
6.按位取反就是所有为反转(连同符号位)
(1)~5 = -6
~0 = -1
