Hi,

Hendrik van Rooyen wrote:
Is there a canonical way to address the bits in a structure
like an array or string or struct?

Or alternatively, is there a good way to combine eight
ints that represent bits into one of the bytes in some
array or string or whatever?

It seems to me that there is a dilemma here :

if you can write:

bit3 = 1

Then you have to jump through hoops to get
bit0 through bit7 into some byte that you can send
to an i/o routine.

On the other hand, if you keep the bits "in" the byte, then you can write:

byte[3] = '\x7e'

but you have to jump through hoops to get at the individual bits.

Is there a "best" way?

It would be nice to be able to write:

if io.byte2.bit3:
   do_something()

if io.byte2 == alarm_value:
  do_something_else()

where:

 io.byte2 & 8   "is"  io.byte2.bit3

byte1 byte2? this does not look very practical
to me. In the simplest form of storing
your values in a text string, you could just
use ord() to get the byte value and
operate on it with 1<<0 1<<1 1<<3 and so on.

If you want, put a module in which defines the
constants

bit1=1<<0
bit2=1<<1

and so on and use it via
if byte & bit1: ...

more efficiently for operations on really big
bit strings is probably just using integers.

HTH
Tino


Is this possible?

- Hendrik

--
http://mail.python.org/mailman/listinfo/python-list

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to