运算符

Posted guoDaXia的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运算符相关的知识,希望对你有一定的参考价值。

逻辑运算符
&(与)两边为true则为true,否则false
|(或)任意一边为true则为true
^(异或)两边不同则为true,两边相同则为false
!(非)原先为true则为false,原先为false则为true
&&(双与)两边为true则为true,否则false
||(双或)任意一边为true则为true

&&和&的区别:
短路问题:
&&先执行左边,如果根据左边就可以得出结论的话就不会执

行右边的操作和判断,直接输出判断结果。&会坚持将两边都

走完。
||和|也是这样的区别

举例子:
package test;

public class Test3 {
    public static void main(String[] args){
        int a=10;
        int b=20;
        int c=10;
        int d=20;        
        boolean flag=((a=a+1)>50)&&((b=b+1)

>50);
        boolean flag1=((c=c+1)>50)&((d=d+1)

>50);
        System.out.println("a="+a+"\nb="+b

+"\nc="+c+"\nd="+d);
    }

}
得到的a=11,b=20,c=11,d=21

^(异或):
两边相同则为false两边不同则为true
!(非):
针对一个元素,为true为变成false,为false则变成true

位运算符
对二进制进行运算

package test;

public class Test4 {
    public static void main(String[] args){
        /**
         求3位与,位或,位异或4的结果
         求~3的结果(按位取反)
         注意:二进制的运算都是针对补码进行操

作的
        
        正数的原反补都是一样
        0代表false,1代表true,就是和逻辑运算

符的与或非异或差不多了
        
    3:    00000000    00000000    

00000000    00000011
    4:    00000000    00000000    

00000000    00000100
    
    
 3&4:
         00000000    00000000    

00000000    00000000    转成十进制得到 0
 3|4:
         00000000    00000000    

00000000    00000111    转成十进制得到7
 3^4:    
         00000000    00000000    

00000000    00000111    转成十进制得到7
 ~3:    
 补码:        11111111    11111111    

11111111    11111100
 反码:        11111111    11111111    

11111111    11111011
 原码:        10000000    00000000    

00000000    00000100    得到-4
 
             
 再写一个例子:
     3&-4
      3:    
              00000000    00000000    

00000000    00000011
      -4:
      原:    10000000    00000000    

00000000    00000100
      反:    11111111    11111111    

11111111    11111011
      补:    11111111    11111111    

11111111    11111100
     
 得到:
     补:        00000000    00000000    

00000000    00000000    得到:0
         
         
     ^位异或的特点:
         a对b进行了异或操作两次相当于没有进行

对b的异或操作。
     以3^4^4为例子:
     3:    00000000    00000000    

00000000    00000011
    4:    00000000    00000000    

00000000    00000100
第一次: 00000000        00000000    

00000000    00000111
    4:    00000000    00000000    

00000000    00000100
第二次: 00000000        00000000    

00000000    00000011
可以发现,对同一个变量位异或2次就相当于没有异或
      
         */
    
        System.out.println(3|4);
        System.out.println(3^4);
        System.out.println(~3);
        System.out.println(3&(-4));
    }
    

}


以上是关于运算符的主要内容,如果未能解决你的问题,请参考以下文章

Python算术运算符赋值运算符关系运算符逻辑运算符条件运算符(三元运算符)

JAVA语言运算符(算数运算符赋值运算符比较运算符逻辑运算符三元运算)

python的运算符都有哪些

Java_运算符

js运算符(运算符的结合性)

R语言 运算符