# Bitwise Operarors ###### tags: `javascript` javaScript中的Bitwise判斷方式,是將每個運算數視為32 bits的數字,並且對每個bit進行運算。 ### AND * a & b - 兩個運算數(bit)的對應位置都是1的話,返回1 ```javascript! let a = 10; ler b = 9; console.log(a & b) // 8 ``` a 二進位:1010,b 二進位表示: 1001  二進位的 1000 為十進位的 8。 ### OR * a | b - 兩個運算數都是 0 的位置返回一個 0 ,只要有 1 就返回 1。 ```javascript! let a = 10; ler b = 9; console.log(a | b) // 11 ```  二進位的 1011 為十進位的 11。 ### XOR * a ^ b - 兩個運算數的對應位相同的每個位置返回0,只要是相同就返回 0 不同返回 1 。 ```javascript! let a = 10; ler b = 9; console.log(a ^ b) // 3 ```  二進位的 0011 為十進位的 3。 ### 反轉 * ~a - 反轉運算數的每個bit。 ```javascript! let a = 10; console.log(~a) // 5 ```  ### 往左 * a << b - 將二進制表示中的 a 向左移動 b 位,丟棄被移出的bits。 ```javascript! let a = 10; let b = 1; console.log(a<<b) // 20 ```  1010向左移 1 格,多出來的位置補 0 ,所以為 10100。 10100 為 20。 ### 往右 * a >> b - 將二進制表示中的 a 向右移動 b 位,丟棄被移出的bits。 ```javascript! let a = 10; let b = 1; console.log(a>>b) // 5 ```  原本的1010向右移後,最右邊的0被移除了,所以是101,101為 5 。 > 那麼...這些哪裡會用到呢? 1. 編碼計算 2. 資料傳出,sockets programming, ports 3. 資料的加密,SHA函數 4. 作業系統、CPU 5. Finite Sate Machine 6. 影像處理、人工智慧...等Graphics
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up