You must work with integer whole characters:
let bytes: [UInt8] = [255, 251] let uInt16Value = UInt16(bytes[0]) << 8 | UInt16(bytes[1]) let uInt8Value0 = uInt16Value >> 8 let uInt8Value1 = UInt8(uInt16Value & 0x00ff)
If you want to convert UInt16 to the bit equivalent of Int16, you can do this with a specific initializer:
let int16Value: Int16 = -15 let uInt16Value = UInt16(bitPattern: int16Value)
And vice versa:
let uInt16Value: UInt16 = 65000 let int16Value = Int16(bitPattern: uInt16Value)
In your case:
let nv: Int16 = -15 let uNv = UInt16(bitPattern: nv) UInt8(uNv >> 8) UInt8(uNv & 0x00ff)
mixel
source share