(1)按位操作符
用来对单个bit,即二进制位进行操作。它会对两个参数中对应的位执行布尔代数运算,并生成结果。它可以直接操纵硬件。
有与(&),或(|),非(~),异或(^),另外可以=一起使用,比如&=,|=, ^=,但没有~=,因为它是一元的。
(2)移位操作符
操作对象也是bit,只可以用来处理整数类型。
左移(<<)按照它右侧的位数将操作符左边的操作数向左移动(在低位补0),“有符号”右移操作符(>>)亦是如此,只是要使用“符号拓展”:若符号为正,则在高位插入0,若符号为负,则在高位插入1.另外,还有一种“无符号”右移位操作符(>>>),它使用“零扩展”:无论正负,都在高位插入0。
如果对char,byte,short进行移位处理,会在移位之前被转换为int类型,并且得到的结果也是int类型的值。只有数值右端的低5位才有用。这样可防止我们移位超过int型所具有的位数。(因为2的5次方是32,而int只有32位)。若对一个long类型的数值进行处理,最后得到long型,此时只会用到数值右端的低6位。
同样可以与“=”一起使用。