Skip to main content

运算符

运算符

逻辑运算符

  • 短路与 && ; 短路或 || ; 取反 !

  • 逻辑与 &, 逻辑或 |; ^ 逻辑异或

    aba&ba && ba | ba || b!aa^b
    truetruetruetruetruetruefalsefalse
    truefalsefalsefalsetruetruefalsetrue
    falsetruefalsefalsetrueturetruetrue
    falsefalsefalsefalsefalsefalsetruefalse
  1. a & b: 当 a和b 同时true , 结果为true, 否则为false
  2. a && b : 当 a和b 同时true , 结果为true, 否则为false
  3. a|b: 当a和b , 又一个为true , 结果为true , 否则为false
  4. a || b : 当a 和b 有一个为true , 结果为true ,否则为 false
  5. a ^ b , 当 a 和 b 不同时 结果为 true ,否则为 false
  6. &逻辑与,不管前面是否为true , 后面的条件都会参与运算。效率低, && 短路则不会
  7. |逻辑或,不管前面是否为true , 后面的条件都会参与运算。效率低,|| 短路则不会

原码,反码,补码

  1. 二进制最高位是符号位: 0表示正数, 1表示负数
  2. 正数的原码,反码,补码都一样(三码合一)
  3. 负数的反码=它的原码符号位不变,其它位取反(0=>1, 1=>0)
  4. 负数的补码=它的补码 + 1, 负数的反码 = 负数的补码 -1
  5. 0的反码, 补码都是0
  6. java没有无符号为,java中的数都是有符号的
  7. 在计算机运算的时候,都是以补码的方式来运算的
  8. 当我们看运算结果的时候,要看她的原码

位运算

  • java中有7个位运算(&,|,^, ~, >>, << 和>>)
  • 分别是 按位与 &, 按位或|, 按位异或^, 按位取反~,
  • 按位与 & : 两位全为 1, 结果为 1, 否则为0;
  • 按位或|: 两位又一个为1,结果为1, 否则为0
  • 按位异或^ : 两位一个0,一个1, 结果为1, 否则0;
  • 按位取反~: 0->1, 1->0
    1. 算数右移 >>: 低位溢出,符号位不变,并用符号为补溢出的高位
    2. 算数左移:<< 符号为不变,低位补0
    3. '>>>' 逻辑右移也叫无符号右移, 运算规则是:低位溢出,高位补0