# -*- coding: utf-8 -*- # !/usr/bin/env python import random import string import struct import time def get_random_str(num, seq=string.ascii_letters): ret_list = [] for i in range(1, num + 1): ret_list.append("".join(random.sample(seq, 1))) return "".join(ret_list) def make_six_bytes_session_id(): # 至少可以用到2050 ts = long(time.time() * 100000) ts = ts + long(get_random_str(2, seq = string.digits)) return fill_2_hexByte(hex(ts), 12) def hexbyte_2_bin(hexCode): binTemp = bin(int(hexCode, 16)) needNum = 8 - len(binTemp) + 2 c = '00000000' result = c[0:needNum] + binTemp[2::] return result def decimal_2_hexByte(decimalCode): hexTemp = hex(decimalCode) c = '00' needNum = 2 - len(hexTemp) + 2 result = c[0:needNum] + hexTemp[2::] return result def fill_2_hexByte(hexCode, num = 4, reverse = False): hexCode = hexCode.replace('L', '') tList = ['0' for _ in range(num)] c = ''.join(tList) needNum = len(c) + 2 - len(hexCode) if needNum <= 0: return hexCode[2::].upper() result = c[0:needNum] + hexCode[2::] if reverse: return reverse_hex(result).upper() return result.upper() def pack_float(value, reverse = False): """ 将浮点数转换为16进制转换的 float :param value: 浮点数 :param reverse: 小端 (True)或者 大端 :return: """ sign = ">f" if not reverse else "