算術運算子
基本運算子
int a=3, b = 2;
加(+)//a + b = 5;
減(-)//a - b = 1;
乘(*)//a * b = 6;
除(/)//a / b= 1;除時需要注意
(1)0不能做除數
(2)a / b =1;若 a =3.0(即為double型別時)
a / b = 1.5;
取余(%)//a % b = 1;
取余也可以叫做求模運算
%取余運算不僅可以對int求模,也可以對double 進行求模
例如:11.5 % 2.0 = 1.5;
增量運算子
加等(+=)//a += b相當于 a = a + b
減等(-=)//a -= b相當于 a = a - b
乘等(*=)//a *= b相當于 a = a * b;
除等(/=)//a /= b相當于 a = a / b;
取余等(%=)//a %= b相當于 a = a %b;
自增自減運算子
自增(++) 分為前置自增(++a)和后置自增(a++)
int a = 6;
b = ++ a//的值7,a的值為7;先給a 加1后賦值給b
b = a++//b的值6,a的值為7;先將a賦值給b 然后a在加1
++a 和a++ 后a的值都為7;
自減(--) 分為前置自減(--a)和后置自減(a--)
int a = 6;
b = --a//的值5,a的值為5;先給a 減1后賦值給b
b = a--//b的值6,a的值為5;先將a賦值給b 然后a在減1
--a 和a--后a的值都為5;
總結:
1. 如果不取自增(自減)運算的運算式的回傳值, 則前置自增(自減)和后置自增(自減)沒有區別.
2. 如果取運算式的回傳值, 則前置自增(自減)的回傳值是自增(自減)之后的值, 后置自增(自減)的回傳值是自增自減之前的值,
關系運算子
等于(==)
不等于(!=)
大于(>)
小于(<)
大于等于(>=)
小于等于(<=)
關系運算子比較簡單,需要注意的是,關系運算子的
運算式回傳的值都是boolean型別
邏輯運算子
邏輯與 &&(短路與)
規則: 兩個運算元都為 true, 結果為 true, 否則結果為 false
運算式1 && 運算式2
若運算式1為假,則結果必定為假,所以運算式2
就不在計算了
邏輯或 ||(短路或)
規則: 兩個運算元都為 false, 結果為 false, 否則結果為true
運算式1 &||運算式2
若運算式1為真,則結果必定為真,所以運算式2
就不在計算了
邏輯非 !
規則: 運算元為 true, 結果為false;運算元為false, 結果為ftrue;
!后面為一個布爾運算式或布林值
位運算子
Java 中對資料的操作的最小單位不是位元組, 而是二進制位.
位運算子主要有四個:
按位與(&)
如果兩個二進制位都為1, 則結果為 1 否則為 0
按位或(|)
如果兩個二進制位都為0, 則結果為 0,否則為 ,1
注意: 當 & 和 | 的運算元為整數(int, short, long, byte) 的時候,
表示按位運算, 當運算元為 boolean 的時候, 表示邏輯運算.
按位非取反(~)
如果該位為 0 則轉為 1, 如果該位為 1 則轉為 0
1.0x 前綴的數字為 十六進制 數字. 十六進制可以看成是二進制的簡化表示方式. 一個十六進制數字對應 4 個二進制位.
2. 0xf 表示 10 進制的 15, 也就是二進制的 1111
按位異或(^)
如果兩個數字的二進制位相同, 則結果為0,否則為1;
移位運算子
左移 <<: 最左側不要了,最右側補0
右移 >>: 最右側位不要了, 最左側補符號位(正數補0, 負數補1)
無符號右移 >>>: 最右側位不要了, 最左側補 0.
1. 左移 1 位, 相當于原數字 * 2. 左移 N 位, 相當于原數字 * 2 的N次方.
2. 右移 1 位, 相當于原數字 / 2. 右移 N 位, 相當于原數字 / 2 的N次方.
3. 由于計算機計算移位效率高于計算乘除, 當某個代碼正好乘除 2 的N次方的時候可以用移位運算代替.
4. 移動負數位或者移位位數過大都沒有意義
條件運算子
條件運算子只有一個:
運算式1 ? 運算式2 : 運算式3
當 運算式1 的值為 true 時, 整個運算式的值為 運算式2 的值; 當 運算式1 的值為 false 時, 整個運算式的值為 運算式3 的值.
類似于if陳述句
if(運算式1){運算式2}
else (運算式3)
// 求兩個整數的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b ;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/230988.html
標籤:其他
下一篇:單片機補充案例--中斷到呼叫不用
