位运算
位运算的对象只能是整形或者字符型数据;
C语言提供了6种位运算符:按位与&、按位或|、按位异或^、按位去反~、按位左移<<、按位右移>>;
1、按位与运算(&)
规则:全1为1,有0为0;
作用:清零;
2、按位或运算(|)
规则:有1为1,全0为0;
作用:将特定位置1;
3、按位异或运算(^)
规则:相异为1,相同为0;
4、按位取反(~)
规则:单目运算,1变0,0变1;
注:对一个数按位取反得到的值为该数+1后再乘以(-1),例~24=-25;
5、左移运算符(<<)
格式:数<<n
功能:将一个运算对象的各二进制位全部左移若干位(左边的二进制丢弃,右边补0)(注意:java中 整数位 32位)
【补充】:对于一个十进制数左移n位后得到的数为该数乘以2^n的和(数*2^n),例2<<4=2*2^4=32
6、右移运算符(>>)
格式:数<<n
功能:将一个运算对象的各二进制位全部右移若干位,正数左补0,负数左补1.
【补充】:若该数为一个复数且不能被2^n整除,则得到的值为数/2^n-1,否则为数/2^n;