基本操作:
(1) & :按位“与”——仅当两个操作数为1时,结果为1,否则为0。如:1000 1000 & 1000 0001 = 1000 0000;
(2) | :按位“或”——仅当两个操作数为0时,结果为0,否则为1。如:1000 1000 | 1000 0001 = 1000 1001;
(3) ^:按位“异或”——仅当两个操作数不同时,相应的输出结果才为1,否则为0。
如:1000 1000 ^ 1000 0001 = 0000 1001 ;
(4) ~ :“取反”——把1置为0,0置为1。如:~1000 1000 = 0111 0111;
(5) <<: “左移”——将变量的各位按要求向左移动若干位。如:0000 1000 <<3 = 0100 0000;
(6) >>: “右移”——将变量的各位按要求向右移动若干位。如:0000 1000>>3=0000 0001;
查看42的3位是0或者1
var a=42
var c=(42>>3) & 1
var d=a.toString(2)
if(c==d.charAt(d.length-4)) console.log("测试成功"c,d)
设置 一个数的5位是1, 3位是1
var c;
c |=(1<<5)
c |=(1<<3)
var d=c.toString(2)
console.log(d)