Я думаю, что это невозможно, потому что Int32 имеет 1 битовый знак и имеет 31 бит числовой информации, а Int16 имеет 1 бит и 15 бит числовой информации, что приводит к наличию 2-битных знаков и 30 бит информации.
Если это правда, я не могу иметь один Int32 на два Int16. Это правда?
Спасибо заранее.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: Использование Vb.Net, но я думаю, что я могу без проблем переводить ответ С#.
Вначале я хотел было преобразовать один UInt32 в два UInt16, поскольку это для библиотеки, которая взаимодействует с машинами на основе WORD. Тогда я понял, что Uint не совместим с CLS и пытается сделать то же самое с Int32 и Int16.
ДАЖЕ ИСКУССТВО: Выполнение a = CType(c And &HFFFF, Int16); throws OverflowException. Я ожидал, что оператор будет таким же, как a = (Int16)(c & 0xffff); (который не генерирует исключение).