• Java运算符及二进制运算符


    Java运算符

    • 算术运算符:+,-,*,/,%,++,——

    • 赋值运算符:=

    • 关系运算符:>,<,>=,<=,==,!= instanceof

    • 逻辑运算符:&&,||,!

    • 位运算符:&,|,^,~,>>,<<

    • 条件运算符 ?:

    • 扩展赋值运算符:+=,-=,/=,/=

    ++ --

    • a++ 先参与运算 在加一

    • ++a 先加一在参与运算 输出语句也算运算

    && || !

    1. 与 && 两个都是真才是真 一个是假就是假

      • 短路运算 懒惰运算 第一个条件能决定最终结果,第二个条件不回去执行。

      • 第一个条件为假后:第二个条件是真是假都不影响最终结果,所有第二条件不去执行

    2. 或 | | 两个都是假才是假 一个是真就是真

      • 非懒惰运算 长路运算 不管第一个条件是否能决定最终结果,第二个条件都要去执行

    3. 非 ! 如果是真变假 如果是假变真

      一般在多个条件相连的时候使用

    二进制的运算符

    1. 位与运算符 &

    运算规则:11为1

    1 Byte a=42 3 Byte b=64 
    5 Byte res=a&b;

    运算过程:

    4的二进制: 0000 0100

    6的二进制: 0000 0110

    11为1: 0000 0100

    结果是:4

    2. 位或运算符 |

    运算规则:1为1

    1 Byte a=42 3 Byte b=64 5 Byte res=a|b;

    运算过程:

    4的二进制: 0000 0100

    6的二进制: 0000 0110

    有1为1: 0000 0110

    结果是:6

    3. 异或运算符 ^

    运算规则:相同为0 不同为1

    1 Byte a=42 3 Byte b=64 5 Byte res=a^b;

    运算过程:

    4的二进制: 0000 0100

    6的二进制: 0000 0110

    : 0000 0010

    结果是:2

     

    4. 位非运算符 ~

    是一个一元运算符

    运算规则:按位取反

    1 Byte a=42 3 Byte b=~a;

    运算过程:

    4的二进制: 0000 0100

    按位取反: 1111 1011

    结果是:-5

    5.移位
    5.1 右移 >> :每移动一位相当于除二

    正数:二进制数字向右移动,左边空出的位置补0

    1 byte num=5
    2 byte r1=num>>2
    3 byte num1=48
    4 byte r2=num1>>3

    5的二进制:0000 0101

    移动后: 0000 0001 01

    结果为:1

    48的二进制: 0011 0000

    移动后: 0000 0110 000

    结果为:6

    负数:向右移,空位补1 (只有负数右移空位补1)

    1 byte num=-5;
    2 byte r1=(byte)(num>>2);

    -5的二进制:1111 1011

    移动后: 1111 1110 11

    结果为:-2

    2.6.5.2左移 <<:每移动一位相当与乘2
    1 byte num=-5;
    2 byte r1=(byte)(num<<2);

    -5的二进制:1111 1011

    移动后 : 11 1110 1100

    结果为:-20

    Byte

    Byte在内存里面能占八个字节

    二进制最高位是1表示负数换算到十进制想知道负多少的规则:取反+1

    例如:                                 00101101 à 45

    -45 45=32+8+4+1=101101 11010011 à -45

     

  • 相关阅读:
    Highways(prim)
    Help Me with the Game(模拟)
    Parencodings
    The Pilots Brothers' refrigerator
    解决Geany 编辑器无法导入matplotlib包问题
    解决pycharm中导入自定义模块提示出错问题
    解决Pycharm中单元测试未发现问题(No tests were found)
    matplotlib设置中文的的一种方式
    matplotlib入门
    matplotlib入门
  • 原文地址:https://www.cnblogs.com/d-java/p/12986792.html
Copyright © 2020-2023  润新知