我正在尋找一個直接的方式位轉換位的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