[Week2] - JavaScript :邏輯 & 位元運算子


Posted by Kayla on 2020-12-31

邏輯運算 - and/or/not

1. || : or
左右有一方符合,從第一個開始判斷,若是為 true,就不在看後面是否符合

3 | | 10  //3
false | | 10 // 10

2. && : and
左右兩邊必須皆符合
第一個值若不符,則直接回傳第一個值,不做後面判斷

3 && 10  //10。需判斷兩邊才成立,因此會回傳最後 10  
false && 3  //false。第一個就判斷結果為false,於是判斷第二個也會無法符合兩邊都成立的標準  
300 && 13  //300

3. !:not
Note: 在 JavaScript 代表為 false:0、空字串、no、false、NaN、undefined


位移運算 - >><<

二進位: 由 0 和 1 組成的

//二進位表示法拆解還原
0100 = 2^2 = 4  
1000 = 2^3 = 8
//改成成二進位表示方式
27 = 16 (2^4)+8(2^3)+2(2^1)+1(2^0) = 11011 //為 27 的二進位為 11011

位移運算: 右移>>、左移<<
往右移一位代表 /2,往左移一位代表 *2

// 1. `<<` 左移一位,代表 *2
0100 = 2^2 =4 //1 << 左移後,變為 1000,空一個補 0
1000 = 2^3 =8

10 << 1 // 20。移一位 10*2=20  
10 << 3 // 80。移三位 10*(2^3)= 80
9 >> 1 // 4。有餘數捨去
13 >> 1 // 6。有餘數捨去

位元運算: and, or , not, xor
針對二進位的每個位數進行運算。

  • &:and
10 & 15 //10。位元運算
|A|1|0|1|0|(2^3+2^1=10)
|B|1|1|1|1|(2^3+2^2+2^1+2^0=15)
-----------(每個位元做 & 比較)
| |1|0|1|0|(& 運算後結果)

10 && 15 //15。邏輯運算,兩個皆是true,回傳最後一個
  • |:or
    10 | 15 //15。位元運算
    |A|1|0|1|0|(2^3+2^1=10)
    |B|1|1|1|1|(2^3+2^2+2^1+2^0=15)
    -----------(每個位元做 | 比較)
    | |1|1|1|1|(|運算後結果)
    10 || 15 //10。邏輯運算,第一個為true,回傳第一個值
    
  • ^:xor 0 ^ 01 ^ 1兩邊相同才會回傳 0。
    Note:Javascript 中 ^ 不是平方的意思
    |A|1|0|1|0|(2^3+2^1=10)
    |B|1|1|1|1|(2^3+2^2+2^1+2^0=15)
    -----------(每個位元做 | 比較)
    | |0|1|0|1|(|運算後結果)
    

#javascript







Related Posts

Guided Policy Search 環境安裝

Guided Policy Search 環境安裝

What Type of Laser Engraving Machine Should be Used for Stainless Steel Engraving?

What Type of Laser Engraving Machine Should be Used for Stainless Steel Engraving?

聽說有隻鯨魚叫Docker?

聽說有隻鯨魚叫Docker?


Comments