Я думаю, что это невозможно, потому что 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);
(который не генерирует исключение).