在C语言中,我可以使用数字做一些技巧:
uint8_t value = 0 int delta = -1 uint8_t result = value + delta /* result will be 0xFF */
在Swift中有没有办法做到这一点?请注意,相同的方法无效:
let value: UInt8 = 0 let delta: Int = -1 var result: UInt8 = value + delta // Error, even typecasting in different ways...
有没有一种方法可以让C的行为在Swift中减法?
谢谢!
所有有符号和无符号整数类型都有一个bitPattern:构造函数,该构造函数从具有相同内存表示形式的有符号(反之亦然)创建无符号数字:
bitPattern:
let delta: Int8 = -1 let result: UInt8 = UInt8(bitPattern: delta) // 0xFF = 255