in reply to Re^4: pack/unpack 6-bit fields. (insanity)
in thread pack/unpack 6 bit fields.

  • Comment on Re^5: pack/unpack 6-bit fields. (Different types of sanity)

Replies are listed 'Best First'.
Re^6: pack/unpack 6-bit fields. (insanity)
by tye (Sage) on Aug 18, 2004 at 21:55 UTC

    My numbers look correct to me.

    print unpack 'B*', 'twelve bytes'; ## hand spaced 001011 101110 111010 100110 001101 100110 111010 100110 000001 000100 011010 011110 001011 101010 011011 001110

    You show code containing 'B*' but the bits that you show are from using 'b*'. That is why you can match the 'b*' case against it.

    Trying to match the 'B*' against that string gives one of the less-sane results I mentioned (where the bit orders are mismatched).

    To be extra clear, using 'B*' would result in each group of 8 bits being reversed (it doesn't reverse the whole bit string), which results in different 6-bit chunks not just reversed 6-bit chunks (so neither of your cases cover it).

    - tye