Я ищу прямой способ, чтобы бит передавал битовые значения Int в UInt и наоборот. Например (с использованием 8-битных целых чисел для простоты), я хочу добиться следующего:
let unsigned: UInt8 = toUInt8(-1) // unsigned is 255 or 0xff
let signed: Int8 = toInt8(0xff) // signed is -1
Сначала я вышел со следующим решением:
let unsigned = unsafeBitCast(Int8(-1), UInt8.self)
let signed = unsafeBitCast(UInt8(0xff), Int8.self)
Но Apple в документации "unsafeBitCast()" заявляет следующее:
.. Предостережение:: Прерывает гарантии системы типа Swift; использовать с чрезвычайная осторожность. Практически всегда есть лучший способ сделать что-либо.
Есть ли у кого лучший способ?