make dec8.bit.Bitfield reversible
This commit is contained in:
parent
e8dfe4790e
commit
10d356225d
1 changed files with 14 additions and 0 deletions
14
dec8/bit.py
14
dec8/bit.py
|
@ -12,7 +12,21 @@ class Bitfield:
|
||||||
self.value <<= length
|
self.value <<= length
|
||||||
self.value |= value
|
self.value |= value
|
||||||
self.length += length
|
self.length += length
|
||||||
|
|
||||||
|
def shift_out(self, length):
|
||||||
|
mask = 2**length - 1
|
||||||
|
tmp = self.value & mask
|
||||||
|
self.value >>= length
|
||||||
|
|
||||||
|
return tmp
|
||||||
|
|
||||||
|
def load(self, raw):
|
||||||
|
self.value = 0
|
||||||
|
self.length = 0
|
||||||
|
|
||||||
|
for b in raw:
|
||||||
|
self.shift_in(b, 8)
|
||||||
|
|
||||||
def dump(self, align=True):
|
def dump(self, align=True):
|
||||||
value = self.value
|
value = self.value
|
||||||
length = self.length
|
length = self.length
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue