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