如何在Swift中用UInt16
兩個數字表示UInt32
,反之亦然?用兩個無符號的16位整數表示一個無符號的32位值
例如,UInt32
65536應是(UINT16)1和(UINT16)65535,和(UINT16)0和(UINT16)65533結合(UInt32的)65533
如何在Swift中用UInt16
兩個數字表示UInt32
,反之亦然?用兩個無符號的16位整數表示一個無符號的32位值
例如,UInt32
65536應是(UINT16)1和(UINT16)65535,和(UINT16)0和(UINT16)65533結合(UInt32的)65533
簡單的按位運算
var number1: UInt16 = 1
var number2: UInt16 = 65535
let number: UInt32 = UInt32(number1) << 16 | UInt32(number2)
number1 = UInt16(number >> 16)
number2 = UInt16(number & 0xFFFF)
謝謝,我比你提供這個答案遲了一點 – Danil
func toInt16(value:UInt32)->(UInt16,UInt16){
return (UInt16(value >> 16),UInt16(value & UInt32(UInt16.max)))
}
func toInt32(value1:UInt16,value2:UInt16)->UInt32{
return (UInt32(value1) << 16 | UInt32(value2))
}
我對Swift的實現更感興趣 – Danil
@JoshCaswell沒有那麼多。位移和OR/AND。 – Sulthan
並在Swift中顯式類型轉換,@Sulthan,這在ObjC中不是必需的。 –