I can't test this but to me it looks like the correct fix is: - my $low4bytes = ( ( $self->get_byte( $offset ) >> 1 ) & 0x30 ) << 30; + my $low4bytes = ( ( $self->get_byte( $offset ) >> 1 ) & 0x03 ) << 30; Nick