sub b5ToInt { use integer; return ($_[4]||0) + (($_[3]||0)<<6) + (($_[2]||0)<<12) + (($_[1]||0)<<18) + (($_[0]||0)<<24); } sub intToB5 { use integer; my $in = int(shift); return map { $_ & 0b111111 } (($in >> 24), ($in >> 18), ($in >> 12), ($in >> 6), $in); }