2017-09-19 29 views
1

我有一個整數,我想檢查一位是0還是1.Javascript獲取單個位

這樣做的最佳做法是什麼?

的我在這個時刻做一個例子:

const myInt = 8; // Binary in 32 Bit integer = 00000000000000000000000000001000 
const myBit = myInt <<28>>> 31; // 00000000000000000000000000000001 

if (myBit === 1) { 
    //do something 
} 

但我認爲,這是不是這樣做的最佳梅索德。

你有什麼更好的主意嗎?

編輯: 它始終是我要檢查同位,但整數是不同

+1

爲什麼你不覺得這是做的最好的方法是什麼?你會如何想象一個更好的方法? – Xufox

+0

'myInt&8'?... –

+0

請更具體瞭解一下這個位是否仍處於相同位置 – px1mp

回答

1
myInt = 8+4; // 1100 
n = 3; 
(myInt >> n) & 0x1; // 1 
n = 2; 
(myInt >> n) & 0x1; // 1 
n = 1; 
(myInt >> n) & 0x1; // 0 
n = 0; 
(myInt >> n) & 0x1; // 0 

通用解決方案將您的數字向右移動N位,並應用位掩碼,只留下l ast位,所有其他設置爲0

0

您可以將該位和left shift <<bitwise AND &運算符一起使用。

var value = 10, 
 
    bit; 
 
    
 
for (bit = 0; bit < 4; bit++) { 
 
    console.log(bit, !!(value & (1 << bit))); 
 
}