一个数用二进制表示后,最右边称最低位(第0位),最左边称最高位。
位运算符:
按位与:&
1、取出数据中的指定位:取的位是1,不取的是0;
注:不要忘记括号; eg:(x&0x00ff)
2、将数据指定位清零:清零位是0,其他是1;>>“掩码”
按位或:|
1、把数据的某些位强置为1:需要强置的位取1,其他取0;
eg:将正整数转化为不小于它的最小奇数:最低位强置位1;
按位异或:^ (不相等为1,相等为0;即做加法)
1、数据中某些位取反:取反的位是1,其他是0;
2、数据清零:与自身进行异或运算
3、交换两个整型变量的值:x=x^y ; y=x^y ; x=x^y ;
已知:(x^y)^y=x;
按位取反:~ (单目运算符)
eg:~00001111==11110000
左移运算符:<< (移出去的高位被丢弃,右边补0)
x<
最高位是0补0,最高位是1:算术右移补1,逻辑右移补0;)
eg:x>>k 右移k位;
位段 | | 位域:节省表示“真”“假”的空间
