binaryio.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:iofus 作者: numaru 项目源码 文件源码
def read_var_uh_long(self):
        _loc3_ = 0
        _loc2_low = 0
        _loc2_high = 0
        _loc4_ = 0
        while True:
            _loc3_ = self.read_unsigned_byte()
            if _loc4_ == 28:
                break
            if _loc3_ >= 128:
                _loc2_low = _loc2_low | (_loc3_ & 127) << _loc4_
                _loc4_ = _loc4_ + 7
                continue
            _loc2_low = _loc2_low | _loc3_ << _loc4_
            return ctypes.c_uint64(_loc2_high * 4294967296 + _loc2_low).value
        if _loc3_ >= 128:
            _loc3_ = _loc3_ & 127
            _loc2_low = _loc2_low | _loc3_ << _loc4_
            _loc2_high = _lrshift32(_loc3_, 4)
            _loc4_ = 3
            while True:
                _loc3_ = self.read_unsigned_byte()
                if _loc4_ < 32:
                    if _loc3_ >= 128:
                        _loc2_high = _loc2_high | (_loc3_ & 127) << _loc4_
                    else:
                        break
                _loc4_ = _loc4_ + 7
            _loc2_high = _loc2_high | (_loc3_ << _loc4_)
            return ctypes.c_uint64(_loc2_high * 4294967296 + _loc2_low).value
        _loc2_low = _loc2_low | (_loc3_ << _loc4_)
        _loc2_high = _lrshift32(_loc3_, 4)
        return ctypes.c_uint64(_loc2_high * 4294967296 + _loc2_low).value
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号