python分割,在python中分割十六进制的最佳方法是什么?

博客讨论了如何在Python中优雅地将一个十六进制数拆分为高位和低位字节。作者提供了一个实现,但感觉有些笨拙。随后,一个更简洁的解决方案被提出,通过使用`divmod`函数来拆分数字,返回一个包含高位和低位的元组。这种方法对于处理十六进制数字的高低字节可能是更标准的方式。
摘要由CSDN通过智能技术生成

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值