在Swift中将有符号转换为无符号

在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:构造函数,该构造函数从具有相同内存表示形式的有符号(反之亦然)创建无符号数字:

let delta: Int8 = -1

let result: UInt8 = UInt8(bitPattern: delta) // 0xFF = 255

以上是 在Swift中将有符号转换为无符号 的全部内容, 来源链接: utcz.com/qa/409600.html

回到顶部