Existe uma boa maneira de dividir um int em dois curtos (.net)?

Eu acho que isso não é possível porqueInt32 tem sinal de 1 bit e tem 31 bits de informação numérica e Int16 tem sinal de 1 bit e 15 bits de informação numérica e isso leva a ter 2 sinais de bit e 30 bits de informação.

Se isso é verdade, então eu não posso ter umInt32 em doisInt16. Isso é verdade?

Desde já, obrigado.

INFORMAÇÃO EXTRA: Usando Vb.Net, mas acho que posso traduzir sem problemas uma resposta C #.

O que inicialmente eu queria fazer era converter umUInt32 para doisUInt16 como isto é para uma biblioteca que interage com máquinas baseadas em WORD. Então percebi queUint não é compatível com CLS e tentou fazer o mesmo comInt32 eInt16.

MESMO PIOR: Fazendoa = CType(c And &HFFFF, Int16); lançaOverflowException. Eu esperava que essa declaração fosse a mesmaa = (Int16)(c & 0xffff); (que não lança uma exceção).

questionAnswers(12)

yourAnswerToTheQuestion