#!perl -w use strict; my $fmt = "0b" . ("%06b" x 5); sub b5ToInt { oct sprintf "0b%06b%06b%06b%06b%06b", @_ } sub intToB5 { map { oct "0b$_" } unpack "(a6)5", sprintf "%030b", $_[0] } my $word = b5ToInt(1,2,3,4,5); printf "word = %d = 0x%08x = 0b%030b\n", $word, $word, $word; my @out = intToB5($word); print "out = ", join(", ", @out), "\n";