算术位运算-note

2023-02-15  本文已影响0人  robertzhai
我们知道位图的数据结构就是一个数组,而位图的操作(算法)基本依赖于下面3个元操作

set_bit(char x, int n); //将x的第n位置1,可以通过x |= (1 << n)来实现

clr_bit(char x, int n); //将x的第n位清0,可以通过x &= ~(1 << n)来实现

get_bit(char x, int n); //取出x的第n位的值,可以通过(x >> n) & 1来实现
//位与操作
void swap(int &a, int &b) {
  a ^= b;
  b ^= a;
  a ^= b;
}

if(0 == (a & 1)) {
 //偶数
}

int reversal(int a) {
  return ~a + 1;
}

int abs(int a) {
  int i = a >> 31;
  return i == 0 ? a : (~a + 1);
}
上一篇下一篇

猜你喜欢

热点阅读