我对一般的十六进制很新,我有一个应用程序,需要我分割一个十六进制数.例如,给定数字0x607F,我需要返回高(0x60)或低(0x7F)字节.
这可能是实施,但感觉有点不完整.在python中有更标准的方法吗?
def byte(integer,highlow):
assert highlow=='high' or highlow=='low'
if highlow=='high':
return hex(int(bin(integer)[:-8],2))
if highlow=='low':
return hex(int(bin(integer)[-8:],2))
Run Code Online (Sandbox Code Playgroud)
Ned*_*der 14
这会将高字节和低字节作为元组返回:
def bytes(integer):
return divmod(integer, 0x100)
Run Code Online (Sandbox Code Playgroud)
例如:
>>> high, low = bytes(0x607F)
>>> hex(high)
'0x60'
>>> hex(low)
'0x7f'
Run Code Online (Sandbox Code Playgroud)
顺便说一句,根据你需要的字节数,以及整数来自哪里,可能有更好的方法来做你需要的.
def bytes(num):
return hex(num >> 8), hex(num & 0xFF)
bytes(0x607F)
Run Code Online (Sandbox Code Playgroud)
产量
('0x60', '0x7f')
Run Code Online (Sandbox Code Playgroud)