我正在寻找一个直接的方式位转换位的Int值为UInt,反之亦然。例如(使用简单的8个整数)我要实现以下目标:INT到UInt(反之亦然)位在斯威夫特铸造
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)
但是,苹果在“unsafeBitCast() “文档声明如下:
..小心::打破了Swift类型系统的保证;极度小心使用 。几乎总是有更好的方法去做任何事情。
有没有人有更好的方法?
类似的问题在这里:[将签名转换为无符号的Swift](http://stackoverflow.com/questions/25666846/converting-signed-to-unsigned-in-swift)。 – 2014-11-25 13:07:44
@Martin是的,你是对的。我发誓我一直在谷歌和stackoveflow搜索这一点,它从来没有出现过。 – 2014-11-25 13:16:06