什么和&和|经营者呢?它们与&&和它们有什么不同?和||?迅速

时间:2015-12-27 08:18:07

标签: xcode swift swift2 operators

我见过许多使用|&的情况,但我还没有理解它们的用途。我知道&&||的含义,但我想知道它们与单个字符对应物之间的区别。此外,如果有人可以向我展示使用|&的示例(请在Swift 2中),那将会很棒。谢谢

3 个答案:

答案 0 :(得分:2)

您可以在Swift文档中了解它们及其差异。

  

逻辑运算符 1

     

逻辑运算符修改或组合布尔逻辑值true和   假。 Swift支持三种标准逻辑运算符   基于C语言:

Logical NOT (!a)

Logical AND (a && b)

Logical OR (a || b)

  

按位运算符 2

     

按位运算符使您可以操作单个原始数据   数据结构中的位。它们通常用于低级别   编程,例如图形编程和设备驱动程序创建。   当您使用原始数据时,按位运算符也很有用   外部源,例如用于通信的编码和解码数据   通过自定义协议。

     

Swift支持C中的所有按位运算符,如上所述   下方。

答案 1 :(得分:2)

有关按位运算符,请参阅Wikipedia page on Bitwise OperationSwift documentation

这些是按位运算符。 &为按位AND,|为按位OR。

请参阅以下示例:

    0011 (decimal 3)
AND 0010 (decimal 2)
  = 0010 (decimal 2)

   0101 (decimal 5)
OR 0011 (decimal 3)
 = 0111 (decimal 7)
  

来源:Wikipedia

之前在StackOverflow上讨论过按位运算符的用法:

使用按位XOR(不是你的问题,但无论如何都是一个很酷的逻辑门)引起了我的注意(通过@ Vilx- here(我不知道它是如何工作的,但答案被接受并上调了34次)

编辑:如果你想知道它是如何运作的,可以在XOR swap algorithm - Wikipedia

上进行一个很好的简单证明
  

交换两个没有中间变量的整数变量:

A = A^B // A is now XOR of A and B
B = A^B // B is now the original A
A = A^B // A is now the original B

如果这些没有帮助,我在这篇文章中已经链接过两次的维基百科页面有一个Applications部分,但它们并不适用于更高级别的语言(除非一些您希望优化算法以仅使用按位运算的原因。)

答案 2 :(得分:1)

&|是按位运算符,它们比较位表示(二进制值)。

`&` -bitwise AND operator
`|` -bitwise OR operator

&&||用于比较int,double,etc.等基元的实际值和对象的地址。它们被称为逻辑运算符。

 1. Lets go to an example to make it simpler (bitwise operator):



    int p=9; int q=10;
    //binary representation of 9 and 10 are 1001 and 1010 respectively.
  • 现在,p & q在每个位位置返回一个 两个操作数的相应位是1。

  • p|q在每个位的位置返回一个,其中一个或两个操作数的相应位为1。

     2.An example for logical operators.
     int p=9; int q=10;
    
  • p>0 && q>0返回true,因为pq都大于0(因为运算符两边的条件都为真)。

  • p>0 || q<0返回true,因为至少有一个条件为真(此处,p大于0)。

我希望这有助于您了解bitwiselogical运营商之间的区别。