Представление 32-битного значения без знака с двумя беззнаковыми 16-битными целыми числами

Вопрос:

Как я могу представить UInt32 с двумя номерами UInt16 в Swift и наоборот?

Например, 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)

Ответ №1
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))
}

Оцените статью
TechArks.Ru
Добавить комментарий