位运算符介绍。这些位运算符只适用于 整形 操作符,
1、& 按位与 int类型占四个字节,一个字节8位。所以一个int类型 有32 位
9&4 ==== 00001001
&00000100 //同1为1 有0为0
00000000 结果为0
2、| 按位或 同0为0 有1 为1
3、^ 按位异或 相同为0 ,不同为1
4、~ 按位取反
~9 这是9的原码 0000 0000 0000 0000 0000 0000 0000 1001
所以可得到9的补码(计算机中以补码存在所以要转换成补码,如果都是正数就不存在此问题。) 0000 0000 0000 0000 0000 0000 0000 1001
取反 得到~9的补码 为 1111 1111 1111 1111 1111 1111 1111 0110
得到~9的反码 为 1111 1111 1111 1111 1111 1111 1111 0101
得到~9的原码 为 1000 0000 0000 0000 0000 0000 0000 1010 即-10
5、<< 按位左移 ge
各二进制全部左移n位,高位丢弃,低位补0.
8<<2 8左移两位,
0000 0000 0000 0000 0000 0000 0000 1000
0000 0000 0000 0000 0000 0000 0000 1000 00
高位丢弃,低位补0所以变成
00 0000 0000 0000 0000 0000 0000 1000 00 = 32
记忆技巧:向左移n位,相当于原数*2^n.
致命问题:左移会改变一个数的正负性。这时候上边的技巧就不试用了。
6、>> 按位右移
右移位,移出去的部分要舍弃,高位补符号位。
技巧。向右移n位,相当于原数除以 2^n
因为高位补符号位,所以右移位不会改变数据的正负性。
实用技能。获取一个数的最低位(奇偶),可以让这个数跟1,进行按位与运算
|
|