Exemple #1
0
 def testAppendToBits(self):
     a = Bits(BitArray())
     with self.assertRaises(AttributeError):
         a.append('0b1')
     self.assertEqual(type(a), Bits)
     b = bitstring.ConstBitStream(bitstring.BitStream())
     self.assertEqual(type(b), bitstring.ConstBitStream)
 def testAppendToBits(self):
     a = Bits(BitArray())
     with self.assertRaises(AttributeError):
         a.append('0b1')
     self.assertEqual(type(a), Bits)
     b = bitstring.ConstBitStream(bitstring.BitStream())
     self.assertEqual(type(b), bitstring.ConstBitStream)
Exemple #3
0
def encode_number(v, fixed=None):
    v = v or 0
    if compact_encoding:
        if fixed:
            return Bits(uint=v, length=fixed)

        if v == 0:
            result = Bits(uint=0, length=number_bits[0] + 1)
        else:
            result = BitArray()

            value = v
            for length in number_bits:
                mask = (1 << length) - 1
                result.append(Bits(uint=value & mask, length=length))
                value = value >> length
                result.append(Bits(bool=value > 0))
                if value == 0:
                    break
    else:
        result = ("%s;" % v).encode('utf-8')
    #debug("encode %d (0x%x) -> %r" % (v, v, result))
    return result