位运算:针对一个变量的某一位的操作,称之为位操作;int a;4字节;32位;如:int a =5;0000 0000 0000 0000 0000 0000 0000 0101最低位是第0为;最高位...
位运算:针对一个变量的某一位的操作,称之为位操作;
int a;4字节;32位;
如:int a =5;0000 0000 0000 0000 0000 0000 0000 0101
最低位是第0为;最高位是第31位;
如果想把 第3为的0改成1,那么这就是位运算;
为运算符:& 按位与 |按位或 ^按位异或 ~按位取反 <<左移 >>右移
与运算:每一位进行与,一假即假
- 5&3;
- 0000 0000 0000 0000 0000 0000 0000 0101 5;
- 0000 0000 0000 0000 0000 0000 0000 0011 3;
- 结果为:
- 0000 0000 0000 0000 0000 0000 0000 0001 1;
- 5&3 == 1;
与的时候,用的是补码;
或运算:每一位进行或运算;一真即真;
5|3 == 7;
异或运算:a^b;相同为假,不同为真;
5^3 ==6;
按位取反:0为1,1为0;一个数的取反等于他的相反数减一;
左移动 :每一位都向左移动一位,超出的舍去,末位补零;左移一位相当于乘以2;左移动2位,相当于乘以4;左移动n位相当于乘以2的n次方;
右移:不同的系统右移动的结果不同;移除的部分舍去,正数首位补0;负数补1;
mac
5>>1 == 2
正数右移动一位相当于除以2;
右移动n位,相当于除以2的n次方;
-1右移几位都是-1;
学员评论