在python中拆分十六进制的最佳方法?

Chr*_*ris 3 python hex

我对一般的十六进制很新,我有一个应用程序,需要我分割一个十六进制数.例如,给定数字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)

顺便说一句,根据你需要的字节数,以及整数来自哪里,可能有更好的方法来做你需要的.


unu*_*tbu 5

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)