Javascript&;和|符号
我知道Javascript&;和|符号,javascript,operator-keyword,Javascript,Operator Keyword,我知道&和|在比较中分别用作和和或 但是&和|操作符呢?它们是用来干什么的 以下是我正在测试的代码: var a = 2; var b = 3; var c = a & b;//2 var d = a | b;//3 &&、| |和&、|········································· -按位运算符将其操作数视为32位(0和1)的序列,而不是十进制、十六进制或八进制数。例如,十进制数字9的二进制表示为1001。按位运算符对此类二进制表示执行操作,但返回
&
和|
在比较中分别用作和和或
但是&
和|
操作符呢?它们是用来干什么的
以下是我正在测试的代码:
var a = 2;
var b = 3;
var c = a & b;//2
var d = a | b;//3
&&、| |和&、|·········································
-按位运算符将其操作数视为32位(0和1)的序列,而不是十进制、十六进制或八进制数。例如,十进制数字9的二进制表示为1001。按位运算符对此类二进制表示执行操作,但返回标准JavaScript数值。
假设变量“a”为13(二进制1101),变量“b”为9(二进制1001)
-这是按位AND运算符,对于其两个操作数的对应位均为1的每个位位置,该运算符返回1。以下代码将返回9(1001):
代码:
result = a & b;
result = a | b;
-这是按位OR运算符,对于其操作数的一个或两个对应位为1的每个位位置,返回一个1。此示例将返回13(1101):
代码:
result = a & b;
result = a | b;
阅读更多
它们是按位运算符,对数字的位进行操作。为了使结果有意义,你必须考虑数字的位:
a = 2 //0010
b = 3 //0011
a & b; //0010 & 0011 === 0010 === 2
它们主要用于读取和操作二进制数据,如.mp3文件。JavaScript具有与Java相同的一组位运算符:
& and
| or
^ xor
~ not
>> signed right shift
>>> unsigned right shift
<< left shift
在大多数语言中,这些操作符与硬件非常接近
而且非常快。在JavaScript中,它们离硬件很远,速度也很慢。JavaScript很少用于
进行位操作。
因此,在JavaScript程序中,&
很可能是输入错误的&
运算符。存在
位运算符减少了语言的一些冗余,使bug更容易隐藏
Javascript:Douglas Crockford+Esailija的好部分回答&&和| |是,而&和|是它们分别是按位和或。这种用法主要用于低级别(现在不知道为什么您希望这样做,这里可能有很多应用程序)操作
例如:
Decimal Number Binary Form
20 10100
30 11110
20 ==> 10100
& 30 ==> 11110
----- ----------
20 10100 (when both bits are 1)
20 ==> 10100
| 30 ==> 11110
----- ----------
30 11110 (when either of the bits is 1)
同样,还有其他运营商:
operator meaning example
xor (^) only one bit is 1 1101
^1001
------
0100
我可以提供全部清单,但那没有用。已经有很多答案包含到优秀资源的链接。你可能想看看这些。我的回答只是给出了一些想法。它们是二进制AND和OR运算符。请引用您的源代码-这是Douglas Crockford的Javascript:The Good Parts的直接引用。我正打算引用它;)@user278064现在您直接复制粘贴了我的答案中的代码(甚至没有修复丢失的分号),您可能也想引用一下吗P@Esailija:缺少分号并不是javascript中的错误,而是一种有时可能导致意外结果的糟糕做法:)你知道有哪个网站有如何使用这些运算符操作mp3文件的示例吗?@MarkLinus这里是javascript mp3解码器库