<?xml version="1.0" encoding="windows-1252"?>
<node id="605330" title="Re^2: 5x6-bit values into/out of a 32-bit word" created="2007-03-17 21:46:41" updated="2007-03-17 17:46:41">
<type id="11">
note</type>
<author id="56130">
Thelonius</author>
<data>
<field name="doctext">
Okay, the C programmer in me rebelled against the inefficiency of my earlier reply.  How about:
&lt;code&gt;
sub b5ToInt {
  use integer;
  return     ($_[4]||0)
          + (($_[3]||0)&lt;&lt;6)
          + (($_[2]||0)&lt;&lt;12)
          + (($_[1]||0)&lt;&lt;18)
          + (($_[0]||0)&lt;&lt;24);
}
sub intToB5 {
  use integer;
  my $in = int(shift);
  return map { $_ &amp; 0b111111 } 
   (($in &gt;&gt; 24),
    ($in &gt;&gt; 18),
    ($in &gt;&gt; 12),
    ($in &gt;&gt;  6),
    $in);
}
&lt;/code&gt;
</field>
<field name="root_node">
605324</field>
<field name="parent_node">
605328</field>
</data>
</node>
