I'm pretty new to hexadecimal in general, and I've got an application that needs me to split a hexadecimal number. For example, given the number 0x607F, I would need to return the high (0x60) or low (0x7F) byte.
This is may implementation, it feels a little cloogy though. Is there a more standard way to do this in 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))
解决方案
This returns the high byte and the low byte as a tuple:
def bytes(integer):
return divmod(integer, 0x100)
For example:
>>> high, low = bytes(0x607F)
>>> hex(high)
'0x60'
>>> hex(low)
'0x7f'
BTW, depending on what you need the bytes for, and where the integer came from, there might be much better ways to do what you need.