位运算的基本操作
基本的运算符和作用:
1:&按位与 &0置0
2:|按位 或 |1置1
3:^异或 *^1取反 *交换 a^=b;b^=a;a^=b;
4: >> 移位运算符 *2或/2 a/(2^n)==a>>n
5:~ 取反
稍高级的应用:
//1:取第k(0,1,2,3,4,5...) 位 int a=10; cout<<(a>>3&1)<<endl;
// 判断a的奇偶性 a%2 等价于 a&1 int a=10; a&1 最后一位是1 为奇 是0为偶
//2:将第k位 置0 int a=10; a=~(1<<(k-1)) &a; //第k位是0其余位都是1&
// 将第k位 置1 int a=10; a=(1<<(k-1))|a;
//将a循环左移k位 int a=10; int k=1; a=(a<<k)|(a>>(sizeof(int)-k));
//把最后一位置1 a|1 //把最后一位置0 a|1-1
//后面连续的1 (1<<k-1)
版权声明:本文为star-and-me原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。