首先 我们先了解基本的知识 也就是源码 反码 补码的概念
源码就是基本的表示数
反码对于正数是不变的
补码+1
与运算 :只有两个都是1才是1 其他都是0 可以用来判断 获取
或运算: 只要满足一个1就是1 可以用来设置
易或:两个相同才行
取反
然后就是移位运算
位运算的常用技巧:
获取:
bool getbit(int num, int i){
return (num & (1<<i) !=0);
}
设置:
int setbit(int num, int i){
return num | (1<<i);
}
很关键的一个点就是,他一定是在操作1的 而不是说去操作并不存在的0