Czy jest dobry sposób na podzielenie int na dwa szorty (.NET)?
Myślę, że nie jest to możliwe, ponieważInt32
ma znak 1-bitowy i 31-bitową informację numeryczną, a Int16 ma 1-bitowy znak i 15-bitową informację numeryczną, co prowadzi do 2-bitowych znaków i 30 bitów informacji.
Jeśli to prawda, nie mogę go miećInt32
na dwaInt16
. Czy to prawda?
Z góry dziękuję.
DODATKOWE INFORMACJE: Korzystając z Vb.Net, ale myślę, że mogę bez problemu przetłumaczyć odpowiedź C #.
Na początku chciałem przekonwertować jedenUInt32
do dwóchUInt16
jak to jest w przypadku biblioteki, która współdziała z maszynami opartymi na WORD. Wtedy to zrozumiałemUint
nie jest zgodny z CLS i próbował zrobić to samoInt32
iInt16
.
NAWET WORSE: Robia = CType(c And &HFFFF, Int16);
rzucaOverflowException
. Spodziewałem się, że to stwierdzenie będzie takie samo jaka = (Int16)(c & 0xffff);
(który nie rzuca wyjątku).