'|'运算符为我提供了不同类型的结果

时间:2016-09-29 03:07:56

标签: swift

如果我这样写

let result = 5 | 4 | 22 

print(result)

结果是:

  

23

let result = 5 | 4 | 22 | 9 

print(result)

结果是:

  

31

并写下这个

let result = 5 | 4

print(result)

结果是

  

5

我无法弄明白。如何工作“|”还是运营商?

1 个答案:

答案 0 :(得分:1)

按位OR运算符

按位OR运算符(|)比较两个数字的位。如果任一输入数字中的位等于1,则运算符返回一个新的数字,其位设置为1:

img

在下面的示例中, someBits moreBits 的值将不同的位设置为 1 。按位OR运算符将它们组合起来使数字 11111110 ,等于 254 的无符号小数:

let someBits: UInt8 = 0b10110010
let moreBits: UInt8 = 0b01011110
let combinedbits = someBits | moreBits  // equals 11111110

来源:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AdvancedOperators.html