运算符
运算符
逻辑运算符
短路与 && ; 短路或 || ; 取反 !
逻辑与 &, 逻辑或 |; ^ 逻辑异或
a b a&b a && b a | b a || b !a a^b true true true true true true false false true false false false true true false true false true false false true ture true true false false false false false false true false
- a & b: 当 a和b 同时true , 结果为true, 否则为false
- a && b : 当 a和b 同时true , 结果为true, 否则为false
- a|b: 当a和b , 又一个为true , 结果为true , 否则为false
- a || b : 当a 和b 有一个为true , 结果为true ,否则为 false
- a ^ b , 当 a 和 b 不同时 结果为 true ,否则为 false
- &逻辑与,不管前面是否为true , 后面的条件都会参与运算。效率低, && 短路则不会
- |逻辑或,不管前面是否为true , 后面的条件都会参与运算。效率低,|| 短路则不会
原码,反码,补码
- 二进制最高位是符号位: 0表示正数, 1表示负数
- 正数的原码,反码,补码都一样(三码合一)
- 负数的反码=它的原码符号位不变,其它位取反(0=>1, 1=>0)
- 负数的补码=它的补码 + 1, 负数的反码 = 负数的补码 -1
- 0的反码, 补码都是0
- java没有无符号为,java中的数都是有符号的
- 在计算机运算的时候,都是以补码的方式来运算的
- 当我们看运算结果的时候,要看她的原码
位运算
- java中有7个位运算(&,|,^, ~, >>, << 和>>)
- 分别是 按位与 &, 按位或|, 按位异或^, 按位取反~,
- 按位与 & : 两位全为 1, 结果为 1, 否则为0;
- 按位或|: 两位又一个为1,结果为1, 否则为0
- 按位异或^ : 两位一个0,一个1, 结果为1, 否则0;
- 按位取反~: 0->1, 1->0
- 算数右移 >>: 低位溢出,符号位不变,并用符号为补溢出的高位
- 算数左移:<< 符号为不变,低位补0
- '>>>' 逻辑右移也叫无符号右移, 运算规则是:低位溢出,高位补0