title: Split Number into high and low words in C
body: <p>I want to send data from Labview FPGA to a C function using the C API. To get the data transmitted synchronized I do the following:</p>
  
  <p>1) Input:</p>
  
  <ul>
  <li>3x I16 values</li>
  <li>1x U16 value</li>
  </ul>
  
  <p>2) In two steps I pack these 4 values into a U64 using the join number function in Labview (it does hi.lo). So it is basically:</p>
  
  <pre><code>((I16.I16).(I16.U16))
  (   U32   .   U32   )
           U64
  </code></pre>
  
  <p>3) Now this U64 value gets transferred to the C function where it should be unpacked like this:</p>
  
  <pre><code>         U64
  (   U32   .   U32   )
  ((I16.I16).(I16.U16))
  </code></pre>
  
  <p>Now I wonder how the unpacking would be handled in C. Is there something like the "Split Number" function in Labview? How do I make sure all the parts get the right data type assigned?</p>