白豬掌柜的
2018-08-10 15:10:03
js中的與運算是怎么用的,我console.log(110& 111)結果就是110,是對的,但是console.log(1000&1100)結果就是72,為什么不是1000,就是換算成十進制,這個72也是不對的,不知道是怎么回事?console.log(110& 111);輸出110console.log(1000&1100);輸出72哪位大神給解答下?
1 回答

青春有我
TA貢獻1784條經驗 獲得超8個贊
跟js沒關系 這是位運算 基于2進制 大學學C必然講這個
簡單說
110 = 1*64 + 1*32 + 0*16 + 1*8 + 1*4 + 1*2 + 0*1 = 1101110(2)
111 = 1*64 + 1*32 + 0*16 + 1*8 + 1*4 + 1*2 + 1*1 = 1101111(2)
110 & 111 = 1101110(2) & 1101111(2) = 1101110(2) = 110
1000 = 1*512 + 1*256 + 1*128 + 1*64 + 1*32 + 1*16 + 1*8 + 0*4 + 0*2 + 0*1
= 1111111000(2)
1100 = 1*1024 + 0*512 + 0*256 + 0*128 + 1*64 + 0*32 + 0*16 + 1*8 + 1*4 + 0*2 + 0*1
= 10001001100(2)
1000 & 1100 = 1111111000(2) & 10001001100(2) = 1001000(2) = 1*64 + 1*8 = 72
&
表示按位與
,計算方式為先轉換為2進制,然后每一個對應位置的同時為1得1,其他情況為0,得到2進制,再轉為10進制。
電腦里儲存數字用的是2進制,按位與是cpu最最最簡單的操作之一,性能快。
添加回答
舉報
0/150
提交
取消