運算子 (邏輯與)和 (短路與)的區別

2021-10-01 11:57:32 字數 1264 閱讀 1056

算術運算子的注意問題

1)如果對負數取模,可以把模數負號忽略不記,如:5%-2=1。 但被模數是負數則不可忽略。此外,取模運算的結果不一定總是整數。

2)對於除號「/」,它的整數除和小數除是有區別的:整數之間做除法時,只保留整數部分而捨棄小數部分。 例如:int x=3510;x=x/1000*1000; x的結果是?

3)「+」除字串相加功能外,還能把非字串轉換成字串.例如:

system.out.println(「5+5=」+5+5); //列印結果是? 5+5=55 ?

++(自增)/–(自減)

++/–在前,先+/-1再運算(備註:運算包含算術運算、賦值運算、比較運算、位運算)

++/–在後,先運算再+/-1

邏輯運算子

==兩邊的運算元都為boolean型,且結果也為boolean; ==

&(邏輯與)和&&(短路與)的區別:

&兩邊的運算元都必須執行;&&若左邊為false,則右邊短路不予執行,若左邊為true,右邊還要執行。

|(邏輯或)和 ||(短路或)的區別:

| 兩邊的運算元都必須執行;|| 若左邊為true,則右邊短路不予執行,若左邊為false,右邊還要執行。

補碼和原碼的轉化過程

在計算機系統中,數值一律用補碼來表示(儲存)。

主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補碼表示的數相加時,如果最高位(符號位)有進製,則進製被捨棄。

補碼與原碼的轉換過程幾乎是相同的。

已知 乙個數的原碼碼,求補碼的操作分兩種情況:

(1)正數的補碼:與原碼相同。

例如,+9的補碼是00001001。

(2)負數的補碼:符號位為1,其餘位為該數絕對值的原碼按位取反;然後整個數加1。

例如,-7的補碼:因為是負數,則符號位為「1」,整個為10000111;其餘7位為-7的絕對值+7的原碼

0000111按位取反為1111000;再加1,所以-7的補碼是11111001。

已知 乙個數的補碼,求原碼的操作分兩種情況:

(1)如果補碼的符號位為「0」,表示是乙個正數,所以補碼就是該數的原碼。

(2)如果補碼的符號位為「1」,表示是乙個負數,求原碼的操作可以是:符號位為1,其餘各位取反,然後再整個數加1。

位運算子

最高效的方式計算2*8?

2<<3或者8<1

邏輯運算子和短路與 短路或

運算子說明與 只要有乙個為false,則false 短路與 只要有乙個為false,則false或 只要有乙個為true,則true 短路或 只要有乙個為true,則true非 取反操作異或 相同為false,不同為true 短路與和短路或採用短路的方式。從左到右計算,如果只通過運算子左邊的運算元就...

java短路運算子和邏輯運算子的區別

邏輯運算子 不論是什麼條件都要執行左右兩邊 短路運算子 我認為在底層就是利用物理電路的 併聯 和 串聯 實現的 原理很簡單,併聯電路代表短路或 串聯電路代表短路與 併聯電路兩個開關只要有乙個開關閉合,電路就會通。類似於短路或 只要有其中乙個為true 開關閉合 是就不必執行右邊的 併聯電路兩個開關其...

與或 邏輯運算子的短路運算

關於 和 的短路運算問題,我們主要關注三個問題 什麼是 和 的短路運算?有什麼用?怎麼用?1 和 屬於邏輯運算子。關於 和 的表示式的運算規則是這樣的 表示式1 表示式2,只要任意表示式為true,則整個表示式的運算結果為true。表示式1 表示式2,只有所有表示式都為true,則整個表示式的運算結...