如果我这样写
let result = 5 | 4 | 22
print(result)
结果是:
23
let result = 5 | 4 | 22 | 9
print(result)
结果是:
31
并写下这个
let result = 5 | 4
print(result)
结果是
5
我无法弄明白。如何工作“|”还是运营商?
答案 0 :(得分:1)
按位OR运算符
按位OR运算符(|)比较两个数字的位。如果任一输入数字中的位等于1,则运算符返回一个新的数字,其位设置为1:
在下面的示例中, someBits 和 moreBits 的值将不同的位设置为 1 。按位OR运算符将它们组合起来使数字 11111110 ,等于 254 的无符号小数:
let someBits: UInt8 = 0b10110010
let moreBits: UInt8 = 0b01011110
let combinedbits = someBits | moreBits // equals 11111110