]> sigrok.org Git - libsigrokdecode.git/blobdiff - decoders/common/srdhelper/mod.py
common: rephrase bitpack(), use list comprehension Python idiom
[libsigrokdecode.git] / decoders / common / srdhelper / mod.py
index 4871205f08261aad2786a175ee2fe48687f5941a..e37345a0b34f1a416c5c6b407cc746ad9b80ae4c 100644 (file)
 # Return the specified BCD number (max. 8 bits) as integer.
 def bcd2int(b):
     return (b & 0x0f) + ((b >> 4) * 10)
+
+def bin2int(s: str):
+    return int('0b' + s, 2)
+
+def bitpack(bits):
+    return sum([b << i for i, b in enumerate(bits)])
+
+def bitunpack(num, minbits=0):
+    res = []
+    while num or minbits > 0:
+        res.append(num & 1)
+        num >>= 1
+        minbits -= 1
+    return tuple(res)