1 回答

TA貢獻1798條經(jīng)驗 獲得超3個贊
你需要了解js位運算符的計算方法。
按位與先將兩個數(shù)字轉(zhuǎn)換為32位的二進制形式,然后上下對齊,按照1+1=1,1+0=0,0+0=0的邏輯計算。
比如:
var iResult = 25 & 3;
alert(iResult); //輸出 "1"
原因是:
25 = 0000 0000 0000 0000 0000 0000 0001 1001
3 = 0000 0000 0000 0000 0000 0000 0000 0011
---------------------------------------------
AND = 0000 0000 0000 0000 0000 0000 0000 0001
所以同理,63215 的二進制形式是0000 0000 0000 0000 1111 0110 1110 1111
num每次循環(huán)時,二進制形式分別是1,10,100,1000等等(前邊的0沒有補齊),可以看出,當(dāng)i=2是,num為100,與63215計算的二進制結(jié)果還是100;當(dāng)i=5時,num為10000,與63215計算的二進制結(jié)果是0,這就是為什么數(shù)組中沒有5的原因,9和12也是類似。
第二個例子,2147483648的二進制形式是1000 0000 0000 0000 0000 0000 0000 0000,剩下的自己算吧。
添加回答
舉報