Java运算符

逻辑运算符:比较boolean类型数据

比较boolean类型数据

& 与(按位与)   只有两边都为true才为true 其余fales ,两边可以为int型  二进制 全1则为1,其他为0。
| 或 (按位或)  只要有一边为true则为true  两边可以为int型 有1则为1,其他为0
^ 异或   跟|基本相同,只是true^true=false
! 非    取反而已
&& 短路与   前面表达式不成立后面不运算。两边必须为boolean型

|| 短路或 前面表达式不成立后面不运算。两边必须为boolean型


位运算符:“位”是二进制意思。它在计算机运算最快。局限性以2的倍数增长

对32位二进制进行操作

<<左移    增大运算   3<<2  3左移两位   用最高位补    基数乘以2的移动的位数次幂  3*2^2 =12

>>右移    减小运算   3>>2  3右移两位   用最高位补    基数除以2的移动的位数次幂  3/2^2 =0

>>>无符号右移 跟上同理,不用最高位,用0补位

~反码 二进制取反而已 0变1 1变0

&和|可以做为位运算存在

他们在比较实质比较二进制数字eg 6&3=2相当于110&011=010  |和^同理    一个数异或同一个数 还是原本的数 5^2^2 =5

练习:~6的十进制

6的二进制0000 0000 0000 0000 0000 0000 0000 0110

取反   1111 1111 1111 1111 1111 1111 1111 1001  这个数怎么算 十进制呢?看下面 

-1   0000 0000 0000 0000 0000 0000 0000 0001 

等于   1111 1111 1111 1111 1111 1111 1111 1000

取反   0000 0000 0000 0000 0000 0000 0000 0111 =7

所以~6=7


你可能感兴趣的:(Java运算符)