zoukankan      html  css  js  c++  java
  • JAVA里的布尔运算符-甲骨文面试题

    重要一点:

    (& ,|) ==>二进制布尔运算符,(&&,||)==>条件布尔运算符

    二进制布尔运算符,两边都会执行,不管左边是否为真或假==>对于运算符两边的操作数不管真假与否,都会先计算出来结果后再进行布尔逻辑运算

    但是条件布尔运算符不同,更先进,如果&&左边为假,那么右边不执行;||左边为真,右边也不执行;

    具体细节:

    JAVA里的布尔运算符可以分为【二进制布尔运算符】和【条件布尔运算符】。

    1.二进制布尔运算符
    二进制布尔运算符:与(&),或(|),异或(^),当其操作数是布尔值时,它们就是逻辑运算符,注意:对于运算符两边的操作数不管真假与否,都会先计算出来结果后再进行布尔逻辑运算;当其操作数是整数时,它们就是位运算符。
     
    2.条件布尔运算符
    条件布尔运算符:条件与(&&),条件或(||),条件非(!)运算符,只能对布尔值进行计算,并且从左到右,如果有一个操作数为真,就不再计算它右边的操作数,直接得出计算结果。
    看个例子:
    public class test4 {
    	
    	private static int j=0;
    	
    	private static boolean methodB(int k){
    		j+=k;
    		return true;
    	}
    	public static void methodA(int i){
    		boolean b;
    		b=i<10|methodB(4);
    		b=i<10||methodB(8);
    	}
    	
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
          methodA(0);
          System.out.println(j);
     
    
    	}
     
    
    }
    

     结果是:

    4
    

     因为位运算符| ,两边都要执行,||运算符 因为左边为真,只执行左边了;

     
     

    位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。


    1.与运算符
    与运算符用符号“&”表示,其使用规律如下:
    两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。
    public class data13
    {
    public static void main(String[] args)
    {
    int a=129;
    int b=128;
    System.out.println("a 和b 与的结果是:"+(a&b));
    }
    }
    运行结果
    a 和b 与的结果是:128
    下面分析这个程序:
    “a”的值是129,转换成二进制就是10000001,而“b”的值是128,转换成二进制就是10000000。根据与运算符的运算规律,只有两个位都是1,结果才是1,可以知道结果就是10000000,即128。


    2.或运算符
    或运算符用符号“|”表示,其运算规律如下:
    两个位只要有一个为1,那么结果就是1,否则就为0,下面看一个简单的例子。
    public class data14
    {
    public static void main(String[] args)
    {
    int a=129;
    int b=128;
    System.out.println("a 和b 或的结果是:"+(a|b));
    }
    }
    运行结果
    a 和b 或的结果是:129
    下面分析这个程序段:
    a 的值是129,转换成二进制就是10000001,而b 的值是128,转换成二进制就是10000000,根据或运算符的运算规律,只有两个位有一个是1,结果才是1,可以知道结果就是10000001,即129。


    3.非运算符
    非运算符用符号“~”表示,其运算规律如下:

    如果位为0,结果是1,如果位为1,结果是0,下面看一个简单例子。
    public class data15
    {
    public static void main(String[] args)
    {
    int a=2;
    System.out.println("a 非的结果是:"+(~a));
    }
    }


    4.异或运算符
    异或运算符是用符号“^”表示的,其运算规律是:
    两个操作数的位中,相同则结果为0,不同则结果为1。下面看一个简单的例子。
    public class data16
    {
    public static void main(String[] args)
    {
    int a=15;
    int b=2;
    System.out.println("a 与 b 异或的结果是:"+(a^b));
    }
    }
    运行结果
    a 与 b 异或的结果是:13
    分析上面的程序段:a 的值是15,转换成二进制为1111,而b 的值是2,转换成二进制为0010,根据异或的运算规律,可以得出其结果为1101 即13。

  • 相关阅读:
    解决在Linux下安装Oracle时的中文乱码问题
    oracle linux 安装过程错误 :Error in invoking target ‘agent nmhs’ of makefile
    mysql 远程连接速度慢的解决方案
    nginx : TCP代理和负载均衡的stream模块
    Xshell同时向多个会话发送指令的方法
    迪杰斯特拉算法
    全周期课程体系
    亲手安装RabbitMq 3.7.2 并安装Trace插件
    山东省枣庄市台儿庄区云平台运维故障处理一例
    开始学习算法
  • 原文地址:https://www.cnblogs.com/aspirant/p/6789106.html
Copyright © 2011-2022 走看看