4 byte integer

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Paul D Ainsworth

    #1

    4 byte integer

    Greetings everyone. I'm a relative newcomer to python and I have a technical
    problem.

    I want to split a 32 bit / 4 byte unsigned integer into 4 separate byte
    variables according to the following logic: -

    bit numbers 0..7 byte 1
    bit numbers 8..15 byte 2
    bit numbers 16..23 byte 3
    bit numbers 24..31 byte 4

    Each of these byte variables to contain integer data from 0 to 255 (or 0 to
    FF in hex mode)

    I had thought that struct.unpack with an input message format of 'I' would
    be the way to do it, but its reporting an error that it doesn't want to
    accept an integer.

    Please can anyone advise?



  • Michael Bentley

    #2
    Re: 4 byte integer


    On May 11, 2007, at 4:25 AM, Paul D Ainsworth wrote:
    Greetings everyone. I'm a relative newcomer to python and I have a
    technical
    problem.
    >
    I want to split a 32 bit / 4 byte unsigned integer into 4 separate
    byte
    variables according to the following logic: -
    >
    bit numbers 0..7 byte 1
    bit numbers 8..15 byte 2
    bit numbers 16..23 byte 3
    bit numbers 24..31 byte 4
    >
    Each of these byte variables to contain integer data from 0 to 255
    (or 0 to
    FF in hex mode)
    >
    I had thought that struct.unpack with an input message format of
    'I' would
    be the way to do it, but its reporting an error that it doesn't
    want to
    accept an integer.
    >
    Please can anyone advise?
    Have a look at http://aspn.activestate.com/ASPN/Cookbook/Python/
    Recipe/113799

    Comment

    • Paul D Ainsworth

      #3
      Re: 4 byte integer

      >Brilliant - thank you :)


      Comment

      • James T. Dennis

        #4
        Re: 4 byte integer

        Paul D Ainsworth <pauldominic@no spam.supanet.co mwrote:
        Greetings everyone. I'm a relative newcomer to python and I have a technical
        problem.
        I want to split a 32 bit / 4 byte unsigned integer into 4 separate byte
        variables according to the following logic: -
        bit numbers 0..7 byte 1
        bit numbers 8..15 byte 2
        bit numbers 16..23 byte 3
        bit numbers 24..31 byte 4
        Each of these byte variables to contain integer data from 0 to 255 (or 0 to
        FF in hex mode)
        I had thought that struct.unpack with an input message format of 'I' would
        be the way to do it, but its reporting an error that it doesn't want to
        accept an integer.
        Please can anyone advise?
        Would something like this work?

        def word2bytes(n):
        """Given an positive integer n, return a tuple of 4 bytes from
        n's least significant 32-bits
        """
        r = []
        n &= 0xFFFFFFFFL
        for i in range(4):
        r.append(n & 0xFF)
        n >>= 8
        r.reverse()
        return tuple(r)







        --
        Jim Dennis,
        Starshine: Signed, Sealed, Delivered

        Comment

        Working...