我有一个整数,比如16,我想将这个数字转换为十六进制数。我尝试使用hex函数来实现这一点,但是无论何时将整数提供给hex函数,它都返回十六进制数字的字符串表示形式,
my_number = 16
hex_no = hex(my_number)
print type(hex_no) // It will print type of hex_no as str.
请问如何将以字符串形式表示的十六进制数转换为普通的十六进制数?
谢谢!
我有一个整数,比如16,我想将这个数字转换为十六进制数。我尝试使用hex函数来实现这一点,但是无论何时将整数提供给hex函数,它都返回十六进制数字的字符串表示形式,
my_number = 16
hex_no = hex(my_number)
print type(hex_no) // It will print type of hex_no as str.
请问如何将以字符串形式表示的十六进制数转换为普通的十六进制数?
谢谢!
>>> print int('0x10', 16)
16
示例代码:
print "%x"%int("2a",16)
0x16
不存在!它可以是'0x16'
或者22
(=int('0x16', 16)
)。 - Tim Pietzcker>>> '{:x}'.format( 12345678 )
'bc614e'
>>> '%x' % ( 12345678 )
'bc614e'
你的代码对我来说可行,没有添加任何撇号。
Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> my_number = 16
>>> hex_no = hex(my_number)
>>> print hex_no
0x10
>>> _
print
不会添加引号。也许OP正在输入“hex_no”并按下“回车”键? - Manoj Govindan我认为这里大部分的答案都被误解或者他们理解了问题的错误。
回答你的问题,将十六进制数据的结果字符串表示转换为十六进制数字(整数表示)是不可能的。
因为,当你按照以下方法将一个整数转换为十六进制时
>>> a = hex(34)
>>> print type(a)
<type 'str'>
>>> print a
0x22
>>> a
'0x22'
有些答案在这里被混淆了,
>>> print a
0x22
>>> a
'0x22'
在MS Windows Vista上使用Python 2.6.5时,命令行解释器的行为如下:
>>>hex(16)
'0x10'
>>>print hex(16)
0x10
我猜这是正常的行为:
>>>'abc'
'abc'
>>>print 'abc'
abc
希望对你有所帮助
def add_hex2(hex1, hex2):
"""add two hexadecimal string values and return as such"""
return hex(int(hex1, 16) + int(hex2, 16))
print add_hex2('0xff', '0xff') # 0x1fe
print hex_no
不应该打印引号。你能再检查一下吗? - Manoj Govindan