Java基础【之】逻辑运算、比较、位运算(对于二进制计算,理解要到位)
1.数学运算(加、减、乘、除、取模、拼接)
- 赋值(=)、正号(+)、负号(-)、加(+)、减(-)、乘(*)、整除(/)、余数(取模)(%)、字符串拼接(+)
“+”与字符串一起连接使用时,表示把非字符串转换成字符串
public static void main(String[] args) {
int a = 0;
a = +2;
System.out.println("正2 :" + a);
a = -2;
System.out.println("负2 :" + a);
a = 2 + 1;
System.out.println("2加1 :" + a);
a = 2 - 1;
System.out.println("2减1 :" + a);
a = 2 * 1;
System.out.println("2乘1 :" + a);
a = 2 / 1;
System.out.println("2除1 :" + a);
a = 2 % 1;
System.out.println("2对1取模 :" + a);
3.比较运算(大、小、相等、实例类型)
- 大于(>),小于(<),等于(==),大于等于(>=),小于等于(<=)
- 实例的类型判断(instanceof)
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a大于b:" + (a > b));
System.out.println("a小于b:" + (a < b));
System.out.println("a等于b:" + (a == b));
System.out.println("a大于等于b:" + (a >= b));
System.out.println("a小于等于b:" + (a <= b));
Object c = 1;
System.out.println("c 是否为 Object的实例: " + (c instanceof Object));
System.out.println("c 是否为 String的实例: " + (c instanceof String));
System.out.println("c 是否为 Integer的实例: " + (c instanceof Integer));
}
4.逻辑运算(与、或、非、异或)
- 逻辑与 (&)、短路与 (&&)
& 与 && 的结果一致,都表示并且的关系,两边为 true 才为 true
区别在于(& 两边都需要判断)、(&& 如果左边为false,右边就不需要判断了)
public static void main(String[] args) {
boolean true_ = true;
boolean false_ = false;
System.out.println("& 与 && 的结果一致,都表示并且的关系,两边为 true 才为 true");
System.out.println("区别在于(& 两边都需要判断)、(&& 如果左边为false,右边就不需要判断了)");
System.out.println("true & false = " + (true_ & false_));
System.out.println("false & true = " + (false_ & true_));
System.out.println("true & true = " + (true_ & true_));
System.out.println("false & false = " + (false_ & false_));
System.out.println("true && false = " + (true_ && false_));
System.out.println("false && true = " + (false_ && true_));
System.out.println("true && true = " + (true_ && true_));
System.out.println("false && false = " + (false_ && false_));
}
- 逻辑或(|)、短路或 (||)
| 与 || 的结果一致,都表示或者的关系,一边为 true 就为 true
区别在于(| 两边都需要判断)、(|| 如果左边为true,右边就不需要判断了)
public static void main(String[] args) {
boolean true_ = true;
boolean false_ = false;
System.out.println("| 与 || 的结果一致,都表示或者的关系,一边为 true 就为 true");
System.out.println("区别在于(| 两边都需要判断)、(|| 如果左边为true,右边就不需要判断了)");
System.out.println("true | false = " + (true_ | false_));
System.out.println("false | true = " + (false_ | true_));
System.out.println("true | true = " + (true_ | true_));
System.out.println("false | false = " + (false_ | false_));
System.out.println("true || false = " + (true_ || false_));
System.out.println("false || true = " + (false_ || true_));
System.out.println("true || true = " + (true_ || true_));
System.out.println("false || false = " + (false_ || false_));
}
- 逻辑非 (!)
! ,表示 取反
符号右边为 true,取反后结果为:false
符号右边为 false,取反后结果为:true\n
public static void main(String[] args) {
int a = 1;
int b = 2;
System.out.println("! ,表示 取反");
System.out.println("符号右边为 true,取反后结果为:false");
System.out.println("符号右边为 false,取反后结果为:true\n");
System.out.println("a=1 ; b=2 ;如下");
System.out.println("a 等于 b ; 结果:" + (a == b));
System.out.println("取反(a 等于 b) ; 结果:" + !(a == b));
}
- 逻辑异或(^)
^ ,表示两边不同结果为 true , 两边相同结果为 false
public static void main(String[] args) {
boolean true_ = true;
boolean false_ = false;
System.out.println("^ ,表示两边不同结果为 true , 两边相同结果为 false");
System.out.println("true 异或 false ; 结果:" + (true_ ^ false_));
System.out.println("true 异或 true ; 结果:" + (true_ ^ true_));
System.out.println("false 异或 false ; 结果:" + (false_ ^ false_));
}
5. 三元表达式
- 三元表达式
($表达式) ? {$1} : {$2};
表达式结果为 true,取第一个值 $1
表达式结果为 false,取第二个值 $2
public static void main(String[] args) {
int a = 1;
int b = 2;
System.out.println("三元表达式---> {$表达式} ? {$1} : {$2}; ");
String str_01 = (a > b) ? "a>b 成立" : "a>b 不成立";
System.out.println(str_01 + "\n");
String str_02 = (a < b) ? "a<b 成立" : "a<b 不成立";
System.out.println(str_02 + "\n");
}
6. 位运算(二进制计算)(注意理解)
- 位运算(二进制计算)
1.转换:先将被计算数,从十进制转化为二进制。
2.改值或位置:然后按运算符号对应的逻辑,直接整体左右移动位置,或者变动每个位的值(0/1)。
3.转换:最后,将得到的二进制位,转换为十进制,得出结果。
- 位运算
- 左移 (<<) : 左移,左侧丢弃,右侧补0;(左移 x2)
- 右移 (>>) : 右移,右侧丢弃,左侧补相同(原来是0就补0,原来是1就补1);(右移 /2)
- 无符号右移 (>>>) : 右移,右侧丢弃,左侧补0;
- 取反(~) : 按补码各位取反,1变为0;0变为1;
- 位比较 (0:false ; 1:true ;)
- 与 (并且) (&) : 1&1时结果是1,否则是0;
- 或 (或者) (|) : 0|0时结果是0,否则是1;
- 异或 (不同) (^) :相同位 ^ 运算,结果是0;不同位 ^ 运算结果是1;
int a = 0;
a = 8 << 2;
System.out.println("8 << 2 ; 结果=" + a);
a = 8 >> 2;
System.out.println("8 >> 2 ; 结果=" + a);
a = 8 >>> 2;
System.out.println("8 >>> 2 ; 结果=" + a);
a = 8 & 2;
System.out.println("8 & 2 ; 结果=" + a);
a = 8 | 2;
System.out.println("8 | 2 ; 结果=" + a);
a = 8 ^ 2;
System.out.println("8 ^ 2 ; 结果=" + a);
a = ~8;
System.out.println("~8 ; 结果=" + a);
《下一篇:循环与控制》
《目录:Java渐进式学习》
《幕》
- 留白 —<老吉>
- ~ 今 ~ ❀ ~ ❀❀❀❀❀❀❀❀❀❀ ❀❀❀❀❀❀❀❀❀❀ ❀❀❀❀❀❀❀