位取反运算符
-
位取反运算符(~)是对所有位的数字进行取反操作
位取反运算符.png
let number1:UInt8 = 255
let number2 = ~number1
print(number2)
打印结果为:
0
位与运算符
-
位与运算符(&)可以对两个数的比特位进行合并。它会返回一个新的数,只有当这两个数都是1的时候才能返回1
位与运算符.png
位或运算符
-
位或运算符(|)可以对两个比特位进行比较,然后返回一个新的数,只要两个操作位任意一个为1时,那么对应的位数就为1
位或运算符.png
let number1:UInt8 = 255
let number2 = ~number1
print(number2)
let number3 = number1 & number2
let number4 = number1 | number2
print(number3)
print(number4)
打印结果为:
0
0
255
位异或运算符
-
位异或运算符,或者说“互斥或”(^)可以对两个数的比特位进行比较,返回一个新的数,当两个操作数对应位不相同时,该数的对应位就为1
位异或运算符.png
let number1:UInt8 = 255
let number2 = ~number1
let number5 = number1 ^ number2
print(number5)
打印结果为:
255
位左移或右移运算符
- 位左移运算符(<<) 和位右移运算符(>>)可以把所有位数的数字向左或者向右移动一个确定的位数
- 位左移和右移具有给整数乘以或者除以2的效果。
无符号整数的移位操作

有符号整数的移位操作

正数和负数效果一样
let number6:Int8 = 8
print(number6 << 1)
print(number6 >> 1)
print("======")
let number7:Int8 = -8
print(number7 << 1)
print(number7 >> 1)
打印结果为:
16
4
======
-16
-4
网友评论