JavaScript和按位运算符

JavaScript和按位运算符,javascript,bit-manipulation,bitwise-operators,Javascript,Bit Manipulation,Bitwise Operators,为什么使用JavaScript: console.log('1000'|'1010');//1018不是“1010” 及 console.log('1000'和'1010');//992不是“1000” JavaScript中按位计算的正确方法是什么?必须将输入定义为二进制数: console.log(0b1000 | 0b1010); > 10 然后,您可以将十进制数转换回二进制表示法: Number(10).toString(2); > "1010" 您必须将输入定义为二进

为什么使用JavaScript:

console.log('1000'|'1010');//1018
不是“1010”

console.log('1000'和'1010');//992
不是“1000”


JavaScript中按位计算的正确方法是什么?

必须将输入定义为二进制数:

console.log(0b1000 | 0b1010); 
> 10
然后,您可以将十进制数转换回二进制表示法:

Number(10).toString(2);
> "1010"

您必须将输入定义为二进制数:

console.log(0b1000 | 0b1010); 
> 10
然后,您可以将十进制数转换回二进制表示法:

Number(10).toString(2);
> "1010"

输入数字需要用二进制定义。操作后,您需要再次将结果转换为二进制,因为按位操作会产生十进制数。下面的代码将生成所需的输出

console.log(('0b1000' | '0b1010').toString(2));
console.log(('0b1000' & '0b1010').toString(2));

输入数字需要用二进制定义。操作后,您需要再次将结果转换为二进制,因为按位操作会产生十进制数。下面的代码将生成所需的输出

console.log(('0b1000' | '0b1010').toString(2));
console.log(('0b1000' & '0b1010').toString(2));

它使用的是你输入的十进制数的二进制等价物。你真的得到了

0000001111101000 | 0000001111110010
0000001111101000 & 0000001111110010

与十进制的1018和992等价,它使用的是你输入的十进制数的二进制等价物。你真的得到了

0000001111101000 | 0000001111110010
0000001111101000 & 0000001111110010

这相当于十进制的1018和992(JavaScript中按位计算的正确方法是什么?)是数字,而不是字符串;)请注意,JavaScript中的按位操作异常缓慢,JS使用双精度表示其数字类型,但32位整数表示它必须转换,执行按位操作,然后每次都转换回。@kjaquier:否!-数字的结果是一样的!“JavaScript中按位计算的正确方法是什么?”使用数字,而不是字符串;)请注意,JavaScript中的按位操作异常缓慢,JS使用双精度表示其数字类型,但32位整数表示它必须转换,执行按位操作,然后每次都转换回。@kjaquier:否!-数字的结果是一样的!谢谢,也适用于二进制数和“二进制字符串”!谢谢,也适用于二进制数和“二进制字符串”!谢谢,我现在明白问题和结果了。谢谢,我现在明白问题和结果了。