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

Java &、&&、|、||、^、<<、>>、~、>>>符号运算

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

Java &、&&、|、||、^、<<、>>、~、>>>符号运算

import org.junit.Test;


public class SymbolOperator {


    //&(按位与) 1&1=1 , 1&0=0 , 0&1=0 , 0&0=0
    //0000 0110  = 6
    //0000 0001 = 1
    //6 & 1 = 0
    @Test
    public void test1(){
        int a = 6;
        int b = 1;
        int c = a & b;
        System.out.println(c);
    }

    //&&(逻辑与)
    //也称短路运算,先计算左边的表达式,一旦为假,则整体为假
    @Test
    public void test2(){
        if(2 < 1 && 4 < 5){
            System.out.println("ture");
        }else{
            System.out.println("false");
        }
    }

    //|(按位或)  1|0 = 1 , 1|1 = 1 , 0|0 = 0 , 0|1 = 1
    // 这里我们和按位与作比较
    //0000 0110  = 6
    //0000 0001 = 1
    //6 & 1 = 7
    @Test
    public void test3(){
        int a = 6;
        int b = 1;
        int c = a | b;
        System.out.println(c);
    }

    //||(逻辑或)
    //这里我们和逻辑与比较
    @Test
    public void test4(){
        if(2 < 1 || 4 < 5){
            System.out.println("ture");
        }else{
            System.out.println("false");
        }
    }

    //^(异或运算符) 1^0 = 1 , 1^1 = 0 , 0^1 = 1 , 0^0 = 0
    //0000 0110  = 6
    //0000 0001 = 1
    //6 & 1 = 7
    @Test
    public void test5(){
        int a = 6;
        int b = 1;
        int c = a ^ b;
        System.out.println(c);
    }

    //<<(左移运算符) 正负数都是右边补0, 正数左边第一位补0,负数补1
    @Test
    public void test6(){
        System.out.println(5 << 2);
        System.out.println(-5 << 2);
    }

    //>>(右移运算符) 正数左边第一位补0,负数补1
    //这里说明负数右移动,先求出负数补码,符号位不变,高位补1
    @Test
    public void test7(){
        System.out.println(5 >> 2);
        System.out.println(-5 >> 2);
    }

    //~(取反运算符) 取反就是1为0,0为1
    //正数取反对负数补码取反
    //负数取反先将求负数补码然后取反
    @Test
    public void tes8(){
        System.out.println(~5);
        System.out.println(~-5);
    }

    //>>>(无符号右移运算符)
    //主要区别在于负数, 先转32位补码, 右移高位补0,移动的时候带符号位一起移动
    @Test
    public void test8(){
        //正数无符号右移
        System.out.println(15 >>> 2);
        //负数无符号右移
        System.out.println(-10 >>> 3);
    }
}

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

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

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