On 2008-07-01, Terry Reedy <[EMAIL PROTECTED]> wrote: > > > nickooooola wrote: >> Hello to all >> I'm about to write a simulator for a microcontroller in python >> (why python? because I love it!!!) >> >> but I have a problem. >> >> The registry of this processor are all 8 bit long (and 10 bit for some >> other strange register) >> and I need to simulate the fixed point behaviour of the register, >> and to access the single bit. > > In Python3, I would use a (mutable) bytearray. > > IDLE 3.0b1 > >>> reg1 = bytearray((0,)*8) # or *10 for 10 bits > >>> reg1 > bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00') > >>> reg1[1]=1 > >>> reg1[1] > 1 > >>> tuple(reg1) > (0, 1, 0, 0, 0, 0, 0, 0) > > A bytearray subclass could enforce that all 'bits' (stored as bytes) are > 0 or 1, have a customized representation to your taste, and add methods > like .flipall().
It seems like implementing ALU operations on such arrays would be a lot more work than implementing bit-indexing on a type derived on a more "integer" like base. I'm pretty fuzzy on how one sub-classes basic things like integers, so maybe I'm all wet, and adding __getitem__ and __setitem__ to an integer type isn't even possible. -- Grant Edwards grante Yow! Do you guys know we at just passed thru a BLACK visi.com HOLE in space? -- http://mail.python.org/mailman/listinfo/python-list