def pack_l2s(lnum, sep='', case='lower'):
import ctypes
PyLong_AsByteArray = ctypes.pythonapi._PyLong_AsByteArray
PyLong_AsByteArray.argtypes = [ctypes.py_object,
ctypes.c_char_p,
ctypes.c_size_t,
ctypes.c_int,
ctypes.c_int]
a = ctypes.create_string_buffer(lnum.bit_length()//8 + 1)
PyLong_AsByteArray(lnum, a, len(a), 0, 1)
hexbytes = ["{:02x}".format(ord(b)) for b in a.raw]
while hexbytes[0] == '00':
hexbytes.pop(0)
if case == 'upper':
return sep.join(hexbytes).upper()
return sep.join(hexbytes)
评论列表
文章目录