Java-位运算符
-
“按位与”运算
“按位与”运算符的运算符号位 “&”,为双目运算符,其运算法则是:如果两个整型数据a,b对应位都是1,则结果位才是1,否则为0.如下
整数5的二进制为:00000000 00000000 00000000 00000101
整数4的二进制为:00000000 00000000 00000000 00000100
5&4结果为:00000000 00000000 00000000 00000100 也就等于十进制中的4. -
“按位或”运算
“按位或”运算符的运算符位“|”,为双目运算,其运算法则是:如果两个操作数的对应位都是0,则结果才是0,否则为1.如下
整数3的二进制为:00000000 00000000 00000000 00000011
整数6的二进制为:00000000 00000000 00000000 00000110
3|6的结果为:00000000 00000000 00000000 00000111,十进制表示7 -
“按位取反”运算
“按位取反”运算也称“按位非”运算,运算符为“~”。其法则是:将操作数二进制中的1改为0,0改为1. -
“按位异或”
“按位异或”运算的运算符位“^”,为双目运算符,其法则是:当两个操作数的二进制表示相同(同时为0或同时为1)时,结果为0,否则为1. -
移位操作(适用的数据类型有byte、short、char、int、long)
(1):<< 左移:将左边的操作数在内存中的二进制数据左移右操作数指定的位数,左边移空的部分补0.
(2):>>右移:如果最高位是0,左移空的位就填入0;最高位是1,右移空的位就填入1.