title: Is there a nice way to split an int into two shorts (.NET)?
body: <p>I think that this is not possible because <code>Int32</code> has 1 bit sign and have 31 bit of numeric information and Int16 has 1 bit sign and 15 bit of numeric information and this leads to having 2 bit signs and 30 bits of information.</p>
  
  <p>If this is true then I cannot have one <code>Int32</code> into two <code>Int16</code>. Is this true?</p>
  
  <p>Thanks in advance.</p>
  
  <p>EXTRA INFORMATION: Using Vb.Net but I think that I can translate without problems a C# answer.</p>
  
  <p>What initially I wanted to do was to convert one <code>UInt32</code> to two <code>UInt16</code> as this is for a library that interacts with WORD based machines. Then I realized that <code>Uint</code> is not CLS compliant and tried to do the same with <code>Int32</code> and <code>Int16</code>.</p>
  
  <p>EVEN WORSE: Doing <code>a = CType(c And &amp;HFFFF, Int16);</code> throws <code>OverflowException</code>. I expected that statement being the same as <code>a = (Int16)(c &amp; 0xffff);</code> (which does not throw an exception).</p>