栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础-逻辑运算、比较、位运算(对于二进制计算,理解要到位)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础-逻辑运算、比较、位运算(对于二进制计算,理解要到位)

Java基础-逻辑运算、比较、位运算(对于二进制计算,理解要到位)

1.数学运算(加、减、乘、除、取模、拼接)3.比较运算(大、小、相等、实例类型)4.逻辑运算(与、或、非、异或)5. 三元表达式6. 位运算(二进制计算)(注意理解)《下一篇:循环与控制》《目录:Java渐进式学习》《幕》

1.数学运算(加、减、乘、除、取模、拼接)

赋值(=)、正号(+)、负号(-)、加(+)、减(-)、乘(*)、整除(/)、余数(取模)(%)、字符串拼接(+)
“+”与字符串一起连接使用时,表示把非字符串转换成字符串

    //1.数学运算
    //正2 :2
    //负2 :-2
    //2加1 :3
    //2减1 :1
    //2乘1 :2
    //2除1 :2
    //2对1取模 :0
  public static void main(String[] args) {

        int a = 0;

        a = +2;
        System.out.println("正2 :" + a);

        a = -2;
        System.out.println("负2 :" + a);

        a = 2 + 1;
        //     当a=2时,可以简写为     a += 1;
        System.out.println("2加1 :" + a);

        a = 2 - 1;
        //     当a=2时,可以简写为    a -= 1;
        System.out.println("2减1 :" + a);

        a = 2 * 1;
        //     当a=2时,可以简写为     a *= 1;
        System.out.println("2乘1 :" + a);

        a = 2 / 1;
        //     当a=2时,可以简写为    a /= 1;
        System.out.println("2除1 :" + a);

        a = 2 % 1;
        //     当a=2时,可以简写为   a %= 1;
        System.out.println("2对1取模 :" + a);

3.比较运算(大、小、相等、实例类型)

大于(>),小于(<),等于(==),大于等于(>=),小于等于(<=)实例的类型判断(instanceof)

    //比较运算
    //a大于b:false
    //a小于b:true
    //a等于b:false
    //a大于等于b:false
    //a小于等于b:true 
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        System.out.println("a大于b:" + (a > b));
        System.out.println("a小于b:" + (a < b));
        System.out.println("a等于b:" + (a == b));
        System.out.println("a大于等于b:" + (a >= b));
        System.out.println("a小于等于b:" + (a <= b));
        
        
        Object c = 1;
        System.out.println("c 是否为 Object的实例: " + (c instanceof Object));// true
        System.out.println("c 是否为 String的实例: " + (c instanceof String));// false
        System.out.println("c 是否为 Integer的实例: " + (c instanceof Integer));// true
   
    }
4.逻辑运算(与、或、非、异或)

逻辑与 (&)、短路与 (&&)
& 与 && 的结果一致,都表示并且的关系,两边为 true 才为 true
区别在于(& 两边都需要判断)、(&& 如果左边为false,右边就不需要判断了)

	//逻辑与 (&)、短路与 (&&)
    public static void main(String[] args) {
    
        boolean true_ = true;
        boolean false_ = false;

        System.out.println("& 与 && 的结果一致,都表示并且的关系,两边为 true 才为 true");
        System.out.println("区别在于(& 两边都需要判断)、(&& 如果左边为false,右边就不需要判断了)");

        System.out.println("true & false = " + (true_ & false_));//false
        System.out.println("false & true = " + (false_ & true_));//false
        System.out.println("true & true = " + (true_ & true_));//true
        System.out.println("false & false = " + (false_ & false_));//false

        System.out.println("true && false = " + (true_ && false_));//false
        System.out.println("false && true = " + (false_ && true_));//false
        System.out.println("true && true = " + (true_ && true_));//true
        System.out.println("false && false = " + (false_ && false_));//false

    }


逻辑或(|)、短路或 (||)
| 与 || 的结果一致,都表示或者的关系,一边为 true 就为 true
区别在于(| 两边都需要判断)、(|| 如果左边为true,右边就不需要判断了)

	//逻辑或(|)、短路或 (||)
    public static void main(String[] args) {
    
        boolean true_ = true;
        boolean false_ = false;

        System.out.println("| 与 || 的结果一致,都表示或者的关系,一边为 true 就为 true");
        System.out.println("区别在于(| 两边都需要判断)、(|| 如果左边为true,右边就不需要判断了)");
        System.out.println("true | false = " + (true_ | false_));//true
        System.out.println("false | true = " + (false_ | true_));//true
        System.out.println("true | true = " + (true_ | true_));//true
        System.out.println("false | false = " + (false_ | false_));//false

        System.out.println("true || false = " + (true_ || false_));//true
        System.out.println("false || true = " + (false_ || true_));//true
        System.out.println("true || true = " + (true_ || true_));//true
        System.out.println("false || false = " + (false_ || false_));//false

    }


逻辑非 (!)
! ,表示 取反
符号右边为 true,取反后结果为:false
符号右边为 false,取反后结果为:truen

	//逻辑非 (!)
    public static void main(String[] args) {
        int a = 1;
        int b = 2;

        System.out.println("! ,表示 取反");
        System.out.println("符号右边为 true,取反后结果为:false");
        System.out.println("符号右边为 false,取反后结果为:truen");

        System.out.println("a=1 ; b=2 ;如下");
        System.out.println("a 等于 b ;  结果:" + (a == b));//false
        System.out.println("取反(a 等于 b) ;  结果:" + !(a == b));//true


    }


逻辑异或(^)
^ ,表示两边不同结果为 true , 两边相同结果为 false

	//逻辑异或(^)
    public static void main(String[] args) {
        boolean true_ = true;
        boolean false_ = false;

        System.out.println("^ ,表示两边不同结果为 true , 两边相同结果为 false");

        System.out.println("true 异或 false ;  结果:" + (true_ ^ false_));//true
        System.out.println("true 异或 true ;  结果:" + (true_ ^ true_));//false
        System.out.println("false 异或 false ;  结果:" + (false_ ^ false_));//false

    }
5. 三元表达式

三元表达式
($表达式) ? {$1} : {$2};
表达式结果为 true,取第一个值 $1
表达式结果为 false,取第二个值 $2

    public static void main(String[] args) {
        int a = 1;
        int b = 2;

        System.out.println("三元表达式--->    {$表达式} ? {$1} : {$2}; ");

        //例1: 表达式结果为 true,取第一个值 $1
        String str_01 = (a > b) ? "a>b 成立" : "a>b 不成立"; //a>b 不成立
        System.out.println(str_01 + "n");

        //例2: 表达式结果为 false,取第二个值 $2
        String str_02 = (a < b) ? "a 
6. 位运算(二进制计算)(注意理解) 

位运算(二进制计算)
1.转换:先将被计算数,从十进制转化为二进制。
2.改值或位置:然后按运算符号对应的逻辑,直接整体左右移动位置,或者变动每个位的值(0/1)。
3.转换:最后,将得到的二进制位,转换为十进制,得出结果。

位运算左移 (<<) : 左移,左侧丢弃,右侧补0;(左移 x2)右移 (>>) : 右移,右侧丢弃,左侧补相同(原来是0就补0,原来是1就补1);(右移 /2)无符号右移 (>>>) : 右移,右侧丢弃,左侧补0;取反(~) : 按补码各位取反,1变为0;0变为1;

位比较 (0:false ; 1:true ;)与 (并且) (&) : 1&1时结果是1,否则是0;或 (或者) (|) : 0|0时结果是0,否则是1;异或 (不同) (^) :相同位 ^ 运算,结果是0;不同位 ^ 运算结果是1;

        // 十进制:[128/0]  [64/0]  [32/0]  [16/0]  [8/0]  [4/0]  [2/0]  [1/0]
        // 二进制: [1/0]    [1/0]   [1/0]   [1/0]  [1/0]  [1/0]  [1/0]  [1/0]

        //十进制 : 二进制
        //  0:   0000 0000
        //  1:   0000 0001
        //  2:   0000 0010
        //  4:   0000 0100
        //  8:   0000 1000
        //  16:  0001 0000
        //  32:  0010 0000

        int a = 0;
        
        a = 8 << 2;
        System.out.println("8 << 2 ; 结果=" + a); // 32
        
        a = 8 >> 2;
        System.out.println("8 >> 2 ; 结果=" + a);// 2
        
        a = 8 >>> 2;
        System.out.println("8 >>> 2 ; 结果=" + a);// 2
        
        a = 8 & 2;
        System.out.println("8 & 2 ; 结果=" + a); // 0
        
        a = 8 | 2;
        System.out.println("8 | 2 ; 结果=" + a);// 10
        
        a = 8 ^ 2;
        System.out.println("8 ^ 2 ; 结果=" + a);// 10
        
        a = ~8;
        System.out.println("~8 ; 结果=" + a);// -9

《下一篇:循环与控制》

点击跳转

《目录:Java渐进式学习》

点击跳转

《幕》

留白 —<老吉> ~ 今 ~ ❀ ~ ❀❀❀❀❀❀❀❀❀❀ ❀❀❀❀❀❀❀❀❀❀ ❀❀❀❀❀❀❀


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/764028.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号