• Java语言运算符


    1 分类

     1) 按操作数数目来划分:
       1)单目运算符
      2)双目运算符
      3)三目运算符:三元运算符
     2) 按功能来划分:
           1)算术运算符

           2)赋值运算符

           3)比较运算符

           4)逻辑运算符

           5)位运算符

    2 算术运算符

    + 加法
    - 减法
    * 乘法
    / 除法
    % 余数
        System.out.println(1 + 1);//2
        System.out.println(2 - 1);//1
        System.out.println(4 * 2);//8
        System.out.println(4 / 2);//2
        System.out.println(12 % 2);//2

    3 赋值运算符

    =
    +=
    -=
    *=
    /=
    %=
    ++
    --
    &=
    |=
    ^=
    >>=
    <<=
            //>>=
    int
    a1 = 12; //a1 >>=2 --> a1 = a1 >> 2 //1100 --> 0011 = 3 a1 >>= 2; System.out.println(a1);//3
    //<<= int a2 = 5; //a2 <<= 2 --> a2 = a2 >> 2 //0101 --> 10100 = 20 a2 <<= 2; System.out.println(a2);//20
    //&= int b1 = 10; //b1 &= 5 --> b1 = b1 & 5 //1010 & 0101 = 0000 = 0 b1 &= 5; System.out.println(b1);//0
    //|= int b2 = 10; //b2 |= 5 --> b2 = b2 | 5 //1010 | 0101 = 1111 = 15 b2 |= 5; System.out.println(b2);//15
    //^= int b3 = 10; // b3 ^= 6 --> b3 = b3 ^ 6 // 1010 ^ 0110 = 1100 = 12 b3 ^= 6; System.out.println(b3);//12

    4 比较运算符

    == 等于
    > 大于
    < 小于
    >= 大于等于
    <= 小于等于
    != 不等于

    5 逻辑运算符

    & 逻辑与
    | 逻辑或
    && 短路与
    || 短路或
    !

    6 位运算符

    |
    &
    ^ 异或
    ~

    1)与 

           //逻辑与:
            //当相同的位上均为1时结果为1,否则结 果为0
            
            //练习1:
            // 12 --> 1100
            // 5  --> 0101
            // 1100 & 0101 = 0100 = 4
            System.out.println(12 & 5);//
            
            //练习2:
            // 7  --> 0111
            // 9  --> 1001
            // 0111 & 1001 = 0001 = 1
            System.out.println(7 & 9);//1

    2)或

           //逻辑或
            //当两边操作数的位有一边为1时,结果为1,否则为0
            
            //练习1:
            //7 --> 0111
            //9 --> 1001
            //0111 | 1001 = 1111 = 15
            System.out.println(7 | 9);//15
            
            //练习2:
            //4 --> 0100
            //8 --> 1000
            //0100 | 1000 = 1100 = 12
            System.out.println(4 | 8);//12

    3)异或

           //异或
            //两边的位不同时,结果为1,否则为0
            
            //练习1:
            // 12 --> 1100
            // 5  --> 0101
            // 1100 ^ 0101 = 1001 = 9
            System.out.println(12 ^ 5);//9
            
            //练习2:
            // 8  --> 1000
            // 9  --> 1001
            // 1000 ^ 1001 = 0001 = 1
            System.out.println(8 ^ 9);//1

    4)非~

            ////将数字补码取反  1变0 0变1
            
            //练习1:
            byte a = 10;
            //a 转换为二进制 00001010
            //因为是正数 原码 = 反码 = 补码
            //补码为00001010
            //补码通过非~进行取反
            //得到结果为 11110101
            //此数为补码 第1位为1 是负数
            //11110101(补码)  --> 11110100(反码) --> 10001011(原码)
            //10001011 = -11
            System.out.println(~a);//-11
            
            //练习2:
            //8默认为int类型 占用内存为4字节 = 32比特
            //转换为二进制为32位   0+23个0+00001000
            //因为是正数 原码 = 反码 = 补码
            //补码为 0+23个0+00001000
            //补码通过非~进行取反
            //得到结果为  1+23个1+11110111 
            //此数为补码 第1位为1 是负数
            //1+23个1+11110111 (补码)  转换成反码
            //1+23个1+11110110(反码)  转换成原码
            //1+23个0+00001001(原码)  = -9
            System.out.println(~8);//-9
            
            //练习3:
            short s = -7;
            //-7的二进制为 1 0000000 00000111(原码)
            //1 1111111  11111000(反码)
            //1 1111111  11111001(补码)
            //补码通过非~进行取反
            //0 0000000  00000110(补码)
            //因为是正数 原码 = 反码 = 补码
            //0 0000000  00000110(原码) = 6
            System.out.println(~s);//6
  • 相关阅读:
    非常好用的JS滚动代码
    在vs中使用ZedGraph
    通用SQL分页过程
    使用 Request.QueryString 接受参数时,跟编码有关的一些问题
    一个验证Email 的Javascript 函数
    DOS 下将文件名列表写入文件
    .NET 开发人员应该下载的十个必备工具
    中文全文搜索(一)
    关于<![if IE]>
    Lucene 全文索引心得
  • 原文地址:https://www.cnblogs.com/wangxiucai/p/12885075.html
Copyright © 2020-2023  润新知