Bitstream -- Binary Data for Humans (Posting On Python-List Prohibited)
Sébastien Boisgérault
sebastien.boisgerault at gmail.com
Tue Mar 6 03:58:58 EST 2018
Hi Lawrence,
Le mardi 6 mars 2018 01:20:36 UTC+1, Lawrence D’Oliveiro a écrit :
> On Tuesday, March 6, 2018 at 8:06:00 AM UTC+13, Sébastien Boisgérault wrote:
> > I have released bitstream, a Python library to manage binary data
> > (at the byte or bit level), hopefully without the pain that this kind
> > of thing usually entails :)
>
> > byte_index = offset / 8
>
> This will return a float.
The implementation is in Cython, which allows to declare types.
The variable byte_index is defined as a size_t.
Did I miss something? Do you mean that an intermediate float
is used in the generated C code? I guess I should check that.
I realize now that I sometimes use the code above to get the bit
and bytes index and sometimes divmod ...
>
> Also I notice you count bit positions from the top of each byte, rather than from the bottom. Any reason for this?
I suppose that my mental representation of the bitstream is left-to-right (think sequence of bits) with bits being "big-endian"ish in each byte, therefore new bits enter from the left with big weights. Which should translate to your description. So, no, no specific reason for this I guess. Is one of the representation better that the other (wrt performance for example)?.
Cheers,
SB
More information about the Python-list
mailing list