比較運算子,邏輯運算子,位運算子,運算子優先順序

2021-10-11 22:05:25 字數 3345 閱讀 2234

以下假設變數a為10,變數b為20:

運算子描述

例項==

等於 - 比較物件是否相等

(a == b) 返回 false.

!=不等於 - 比較兩個物件是否不相等

(a != b) 返回 true.

<>

不等於 - 比較兩個物件是否不相等

(a <> b) 返回 true。這個運算子類似 != 。

>

大於 - 返回x是否大於y

(a > b) 返回 false。

<

小於 - 返回x是否小於y。所有比較運算子返回1表示真,返回0表示假。這分別與特殊的變數true和false等價。

(a < b) 返回 true。

>=

大於等於 - 返回x是否大於等於y。

(a >= b) 返回 false。

<=

小於等於 - 返回x是否小於等於y。

(a <= b) 返回 true。

運算子邏輯表示式描述實

andx and y

只要有乙個運算數是false,結果就是false; 只有所有的運算數都為true時,結果才是true 做取值運算時,取第乙個為false的值,如果所有的值都為true,取最後乙個值。

true and true and false–>結果為false true and true and true–>結果為true 1 and 0 and 2–>結果是0; 1 and 2 and 3–>結果是3

orx or y

只要有乙個運算數是true,結果就是true; 只有所有的運算數都為false時,結果才是false 做取值運算時,取第乙個為true的值,如果所有的值都為false,取最後乙個值。

false or false or true–>結果為true false or false or false–>結果為false 1 or 0 or 2–>結果是1; 0 or none or () or 『』 or {} -->結果是{}

notnot x

布林"非" - 如果 x 為 true,返回 false 。如果 x 為 false,它返回 true。

not(a and b) 返回 false

注意:

比較運算子中 會把布林值轉為數字進行比較 a == true 改為 2 == 1 所以不等於為false

邏輯運算子 會把數值轉為布林值 true預設為1 false為0 所有不為0的數值都為true(包括負數)

a =

34a >

10and

print

('hello world'

)a <

10and

print

('hello world'

)a >

10or

print

('你好世界'

)a <

10or

print

('你好世界'

)'''輸出結果為 hello world (第一排的hello world)

你好世界 (第二排的你好世界)

and邏輯運算子判斷為兩個都為true即輸出hello world 第二排為false所以輸出第乙個

or邏輯運算子判斷為只要其中乙個對了就為true

所以在判斷 a>10為true的時候 即預設為true 後面的print沒有判斷

而第二排的a<10為false 然後判斷後面的print 所以輸出了'你好世界'

'''

按位運算子是把數字看作是二進位制來進行計算的。 下表中變數 a 為 60,b 為 13,二進位制格式如下:

a =

0011

1100

# 60的二進位制

b =0000

1101

# 13的二進位制--

----

----

----

---a&b =

0000

1100

a|b =

0011

1101

a^b =

0011

0001

~a =

1100

0011

位運算

描述示例

&按位與運算子:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0

(a & b) 輸出結果 12 ,二進位制解釋: 0000 1100

|按位或運算子:只要對應的二個二進位有乙個為1時,結果位就為1。

(a | b) 輸出結果 61 ,二進位制解釋: 0011 1101

^按位異或運算子:當兩對應的二進位相異時,結果為1

a ^ b) 輸出結果 49 ,二進位制解釋: 0011 0001

~按位取反運算子:對資料的每個二進位制位取反,即把1變為0,把0變為1 。~x 類似於 -x-1

(~a ) 輸出結果 -61 ,二進位制解釋: 1100 0011,在乙個有符號二進位制數的補碼形式。

<<

左移動運算子:運算數的各二進位全部左移若干位,由<<右邊的數字指定了移動的位數,高位丟棄,低位補0。

a << 2 輸出結果 240 ,二進位制解釋: 1111 0000

>>

右移動運算子:把">>"左邊的運算數的各二進位全部右移若干位,>>右邊的數字指定了移動的位數

a >> 2 輸出結果 15 ,二進位制解釋: 0000 1111

當多種運算子做混合運算時,就會涉及到先運算哪個,後運算哪個問題。以下**列出了從最高到最低優先順序的所有運算子:

運算子描述

**指數 (最高優先順序)

~ + -

按位翻轉, 一元加號和減號 (最後兩個的方法名為 +@ 和 -@)

* / % //

乘,除,取模和取整除

+ -加法減法

>> <<

右移,左移運算子

&位 『and』

^ |位運算子

<= < > >=

比較運算子

<> == !=

等於運算子

= %= /= //= -= += *= **=

賦值運算子

is is not

身份運算子

in not in

成員運算子

not>and>or

邏輯運算子

在以後的實際開發中,如果有多種運算子進行混合運算時,強烈建議使用小括號來手動的控制運算子的優先順序!

賦值運算子 比較運算子 和邏輯運算子

基本賦值運算子就是乙個符號 代表將左邊的資料交給左側的變數。int a 30 符合復合賦值運算子 a 3 相當於 a a 3 b 4 相當於 b b 4 c 5 相當於 c c 5 d 6 相當於 d d 6 7 7 相當於 e 7 7 int a 10 a 5 system.out.println...

js 比較運算子 邏輯運算子

運算子 運算子 1.純數字,加法數 算 2.加好左右只要有字串都得字串 字串鏈結 如 var a 1 1 a 1 1 document.write a 此時輸出2a11 在計算機中可以除0,任何數除0都得無窮。無窮 infinity 0除0得nan 非數,非數也是數 運算子 a 即 a 1 即 a ...

2 比較運算子邏輯運算子

比較運算子 大於 小於 等於 大於等於 小於等於 不等於 注 infinity infinity nan nan 比較結果為true或者false 字串比較時是比較ascii碼的值 邏輯運算子 與 或 非 與運算子 先看第乙個表示式轉換成布林值的結果,如果為真,那麼看第二個表示式的布林值結果,然後如...