当前位置: 首页 > 图灵资讯 > 行业资讯> 如何使用hex()在python中转换进制?

如何使用hex()在python中转换进制?

来源:图灵python
时间: 2024-10-09 17:48:10

运算中的两种进制相信大家都不陌生,那就是十进制和十六进制。在操作中我们会根据不同的使用条件进行进制之间的转换。这里小编最近学习了一个内置函数,是专门针对进制转换使用的。下面我们先就hex()函数进行简单的概念理解,然后学习hex()在python中转换进制的方法。

一、说明:

1. 函数功能将10进制整数转换成16进制整数。

>>>hex(15)
'0xf'
>>>hex(16)
'0x10'

2. 如果参数x不是整数,则它必须定义一个返回整数的__index__函数。

#未定义__index__函数
>>>classStudent:
def__init__(self,name,age):
self.name=name
self.age=age

>>>
>>>s=Student('Kim',10)
>>>hex(s)
Traceback(mostrecentcalllast):
File"<pyshell#17>",line1,in<module>
hex(s)
TypeError:'Student'objectcannotbeinterpretedasaninteger

#定义__index__函数,但是返回字符串
>>>classStudent:
def__init__(self,name,age):
self.name=name
self.age=age
def__index__(self):
returnself.name

>>>s=Student('Kim',10)
>>>hex(s)
Traceback(mostrecentcalllast):
File"<pyshell#23>",line1,in<module>
hex(s)
TypeError:__index__returnednon-int(typestr)

#定义__index__函数,并返回整数
>>>classStudent:
def__init__(self,name,age):
self.name=name
self.age=age
def__index__(self):
returnself.age

>>>s=Student('Kim',10)
>>>hex(s)
'0xa'

二、转为十六进制(Hex)字符串

defgetStringFromNumber(self,size,value):
"""
转为十六进制(Hex)字符串
:paramsize:
:paramvalue:
:return:
"""
size=int(size)
value=int(value)
by=bytearray([])
foriinrange(1,size+1):
val=value>>8*(size-i)&255
by.append(val)
val=by.hex()
print("===============================")
print("%s转为%s个字节十六进制(Hex)字符串:%s"%(value,size,val))
print("===============================")
returnval
getStringFromNumber(5,11)

以上就是使用hex()在python中转换进制的方法,想要把十进制转换的小伙伴可以试试这种方法,更重要的是hex()会以字符串的形式展现出来。