On 24/03/12 03:51, Alex Hall wrote:

Of course, 9 means the battery is high and charging, but how do I
interpret an arbitrary integer as the sum of its flags? Is there a
binary trick I can use?

Dave has given the immediate answer which is a subset of a general technique known as bitwise masking.

I discuss this with some other examples in the Operating System topic of my tutorial. You might find the write up interesting.

Another useful bitwise operator is xor which can be used to tell is any flags have changed value since the last time you looked:

oldflags = readFlags()

while True:   # look for a change
   newflags = readFlags()
   if newflags ^ oldflags:
       break # there's been a change

# process newflags.

And finally, the bitwise OR can be used to set a particular flag

HiBattery = 8

flags = flags | HiBattery  # sets HiBattery, preserving the rest.


HTH,

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to