Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript&;和|符号_Javascript_Operator Keyword - Fatal编程技术网

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解码器库