1、"按位与"运算符 '&'
双目运算符
运算法则:,如果两个整型数据a,b对应位都是1,则结果位才是1,否则是0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。
2、”按位或“运算符 '|'
双目运算符
运算法则:如果两个操作数对应位都是0,则结果位才是0,否则为1.如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。
3、”按位取反“运算符 '~'
单目运算符
运算法则:将操作数二进制中的1改为0,0修改为1.
4、”按位异或“运算符 ’^‘
双目运算符
运算法则:当两个操作数的二进制数表示相同(同时为0或同时为1)时,结果为0,否则为1.若两个操作数的精度不同,则结果的精度与精度高的操作数相同。
5、移位操作
(1)<<:左移
含义:将运算符左边的操作数的二进制数据,按照运算符右边操作数指定的位数向左移动,右移空的部分补0.
(2)>>:右移
含义:若最高位是0,则右移空的位就填入0;
若最高位是1,则右移空的位就填1
(3)>>>:无符号右移
含义:无论最高位是0还是1,左侧被移空的高位都填入0
注意:移位运算符使用的数据类型有byte,short,char,int 和long
位运算符除了"按位与"和"按位或"运算符外,其他只能用于处理整数的操作数
移位可以实现整数除以或乘以2^n的效果。例如y<<2与y*2的2次方相同;
y>>1的结果与y/(2的1次方)结果相同。总之,一个数左移n位,就是将这个数乘以2的n次方,一个数右移n位,就是将这个数除以2的n次方。