直接看代码
1 var a=5; // 00000101;
2 console.log(a|2); // 00000101 | 00000010 -->00000111--->7
3 console.log(a&2); // 00000101 | 00000010 -->00000000--->0
4 console.log(a^2); // 00000101 | 00000010 -->00000111--->7
5 a=-5; // 原码:10000101; 反码:11111010; 补码:11111011;
6 //-4 原码:10000100; 反码:11111011; 补码:11111100;
7 console.log(a|-4); // 11111011 | 11111100 -->11111111--->11111110--->10000001-->-1
8 console.log(a&-4); // 11111011 | 11111100 -->11111000--->11110111--->10001000-->-8
9 console.log(a^-4); // 11111011 | 11111100 -->00000111-->7
10
11 var arr =[1];
12 console.log(typeof "");
13
14 var a=1,c=1;
15 var b=(++a)+a;//前增量:先自增再赋值
16 var d=(c++)+c;//后增量:先赋值再自增
17 console.log(b+","+d); */
18 var a = 0x1234;
19 var b = 0x00ff;
20 console.log(a&b);
21 console.log(a|b);
22 console.log(a^b);
23 //0001 0010 0011 0100
24 //0000 0000 1111 1111
25 //& //0000 0000 0011 0100
26 //| //0001 0010 1111 1111
27 //^ //0001 0010 1100 1011
28
29 //左移一位相当于乘以2 左移两位相当于乘以4 以此类推...
30 console.log(7<<2);//0000 0111 <<2 0001 1100 -->28
31 //带符号右移相当于除以2(余数忽略) 左移两位相当于除以4 以此类推... (正数高位补0,负数高位补1)
32 console.log(7>>2);//0000 0111 >>2 0000 0001 -->1
33 console.log(-9>>4);//1000 1001-->1111 0110-->1111 0111 >>4 1111 1111-->1111 1110-->1000 0001 -->-1
34 console.log(-1>>4);//1000 0001-->1111 1110-->1111 1111 >>4 1000 0111-->1111 1110-->1000 1001 -->-1
35 //无符号右移高位补0 32位
36 console.log(-5>>>3);
37 //1000 0000 0000 0000 0000 0000 0000 0101
38 //1111 1111 1111 1111 1111 1111 1111 1010
39 //1111 1111 1111 1111 1111 1111 1111 1011
40 //1111 1111 1111 1111 1111 1111 1111 1111 >>>4
41 //1111 1111 1111 1111 1111 1111 1111
42 console.log(-1>>>4);
43 console.log(-1>>>1);