【J2SE】java中的位运算符
Java的运算符,分为四类:
算数运算符、关系运算符、逻辑运算符、位运算符。
算数运算符:+ – * / % ++ —
关系运算符:== != > >= < <=
逻辑运算符:&& || ! ^ & |
位运算符:& | ~ ^ << >> <<<
主要讨论一下位运算符。
位运算符是以二进制为单位进行的运算,其操作数和运算结果都是整型值。
位运算符的位与’&’, 位或’|’, 位非’~’ ,位异或‘^’ , 右移’>>’,左移'<<‘,0填充的右移’>>>’ 与逻辑运算符运算的相应操作的真值表完全相同,其差别知识 为运算符操作的操作数和运算结果都是 二进制整数,而逻辑运算相应操作的操作数和运算结果都是boolean型。
1、与运算符 &
规律如下:两个操作数中位都为1,结果才为1.否则结果为0。
int x = 15; //x等于二进制数的 0000 1111
int y = 6; //y等于二进制数的 0000 0110
int z = x&y; //z等于二进制的 0000 0110也就是十进制的6
2、或运算符 |
规律如下:两个操作数中只要有一个位为1,结果就为1。否则就为0。
int x = 15; //x等于二进制数的0000 1111
int y = 6; //y等于二进制数的0000 0110
int z = x|y; //z等于二进制数的 0000 1111
3、非运算符~
规律如下:如果位为0,结果是1,如果位为1,结果是0。
int x = 15;//x等于二进制数的 0000 1111
int y = ~15;//y等于二进制数的1111 0000
4、异或运算符^
规律如下:两个操作数的位中,相同则结果为0,不同则结果为1.
int x =15;//x等于二进制数的0000 1111
int y = 6; //y等于二进制数的0000 0110
int z=x^y; //z等于二进制数的 1111 0110
5、>>右移