指针和位运算很适合编写系统软件的需要。
位运算指进行二进制位的运算。
按位与”运算符 & 用途
1)清零
2)取一个数中某些指定位(比如只需要低8位)
3)想保留哪一位保留下来,就与一个数进行&运算,此数在该位取1。
按位或 |
按位异或(XOR) ^ 同0异1
1)使特定位翻转
2)与0相异或,保留原值
3)交换两个值,不用临时变量
//假如a=3,b=4。将a和b交换值 a=a^b; b=b^a; a=a^b;
b=b^(a^b)=a^b^b=a;( b^b=0)
a=a^b^(b^a^b)=a^a^b^b^b=b;
取反运算 ~(单目运算符)
左移运算符 <<
将一个数的各二进制位全部向左移若干位
a = a<<2;(向左移2位)
高位左移后溢出,舍弃。
右移运算符 >>
移到右端的低位被舍弃,对于无符号数,高位补0;
算术右移(补1)和逻辑右移(补0);