def read_var_short(self):
ret = 0
size = 0
while size < 16:
byte = self.read_byte()
has_next = (byte & 0x80) == 0x80
if size > 0:
ret = ret + ((byte & 0x7F) << size)
else:
ret = ret + (byte & 0x7F)
size = size + 7
if not has_next:
if ret > 32767:
ret = ret - 65536
return ctypes.c_int16(ret).value
raise RuntimeError("Too much data")
评论列表
文章目录