diff --git a/dec8/bit.py b/dec8/bit.py index 1031f8d..cd14d6b 100644 --- a/dec8/bit.py +++ b/dec8/bit.py @@ -12,7 +12,21 @@ class Bitfield: self.value <<= length self.value |= value 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): value = self.value length = self.length