java一些运算符的使用~

1,~取反运算符

~4 = -5
计算方法就是取反减一,~ -8 = -10;

2,<<,>>,>>>

<<
左移,8<<2 = 32运算方法就是8乘以2的二次方
“>>”
右移,8>>2 = 2运算方法就是8除以2的二次方
“>>>”
无符号右移,8>>>2 = 2运算方法,当为正数运算时结果与>>没有区别,但是当为负数时就不一样了,目前我不知道怎么一下子加减乘除算出结果,如若有哪位大神知道欢迎告知,但是在这里说明一下原理,
当是负数进行位运算时,例如-8>>2表示把-8的二进制数向右移2位,高位补得标志位,负数的标志位1,正数的是0,但是,-8>>>2这里补得是0,无论是正数负数<<<都是补零的,所以当是正数位运算>>>和>>结果一样

3.逻辑&&和位&的区别

&&:当第一个条件为false时将不再检查第二个条件,短路,
&:无论第一个条件是否俄日false两个条件都要检查
举例

public class ex {
        public static void main(String[] args) {
            int a = 5;
            int c = 20;
            System.out.println(a > c && a++ < c);
            System.out.println(a);//a++并没有执行,短路了a还是5
            System.out.println(a > c & a++ <c);//a++执行了,所以此时a就变成了6了
            System.out.println(a);


    }
}

结果

false
5
false
6

4,逻辑||和位|

与上面的上一条类似,当第一个条件为TRUE时,||将不再判断第二个条件的真假,但是|无论第一个条件真假第二个条件仍要检查,这里就不举例子

5.符合运算

+=、-=、*=、/=、%=、 < <=、>>=、>>>=、&=、^=
和|=

在java中a += 2和a = a+2是不一样的,复合赋值 E1 op= E2 等价于简单赋值E1 = (T)((E1)op(E2)),其中T 是E1 的类型,也就是说复合运算包含类型转换
int x = 6
x = x + 1.1;//错误,x+1.1得到的结果是double型
x += 1.1;//正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值