Swift - 溢出运算符 - &(&+,&-,&*)
2022-03-24 本文已影响0人
aven_kang
溢出运算符
//print(Int8.min) // -128
//print(Int8.max) // 127
//print(UInt8.min) // 0
//print(UInt8.max) // 255
var v1 = UInt8.max
v1 = v1 + 1
在上诉代码中,v1进行了加1,而v1本身是max,255最大值了,如果加1,就会溢出,发生运行时错误,会奔溃
同样,如果加入高级运算符
var v1 = UInt8.max
v1 = v1 &+ 1 // 0
那么这个时候v1的值变成了0,因为UInt8是从0-255取值的,255已经满了,加一的话,会回到0,继续循环
试试乘法
var v1 = UInt8.max
v1 = v1 &* 2 // 255*2 - 256 = 254