在python中分割十六进制的最佳方法是什么? [英] Best way to split a hexadecimal in python?

查看:1835
本文介绍了在python中分割十六进制的最佳方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

一般来说,我对十六进制很新,而且我有一个需要我分割十六进制数的应用程序。例如,给定数字0x607F,我需要返回高位(0x60)或低位(0x7F)字节。



这可能是实现,它感觉有点奇怪虽然。有没有一种更加标准的方式来做到这一点在python中?

pre $ def byte(integer,highlow):
assert highlow =='high'或highlow =='low'
if highlow =='high':
return hex(int(bin(integer)[: - 8],2))
如果highlow =='low':
return hex(int(bin(integer)[ - 8:],2))


解决方案

这将返回高位字节和低位字节作为元组:

  def字节(整数):
返回divmod(整数,0x100)



<例如:

 >>>高,低=字节(0x607F)
>>>十六进制(高)
'0x60'
>>>十六进制(低)
'0x7f'

顺便说一句, ,以及整数的来源,可能有更好的方法来做你需要的。


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.

这篇关于在python中分割十六进制的最佳方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆