直接看代码
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);