From 10d356225df108943ac171729b6bbf44e754a3f3 Mon Sep 17 00:00:00 2001 From: Martin Sekera Date: Tue, 8 Sep 2020 02:42:15 +0200 Subject: [PATCH] make dec8.bit.Bitfield reversible --- dec8/bit.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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