如何将十六进制字符串转换为十六进制数

时间:2010-10-11 07:08:19

标签: python

我在前面有整数。 16我试图将这个数字转换为十六进制数。我试图通过使用十六进制函数来实现这一点但是无论何时为十六进制函数提供整数,它都会返回十六进制数字的字符串表示,

my_number = 16
hex_no = hex(my_number)    
print type(hex_no) // It will print type of hex_no as str.

有人可以告诉我如何将字符串格式的十六进制数转换为十六进制数 谢谢!

8 个答案:

答案 0 :(得分:17)

>>> print int('0x10', 16)
16

答案 1 :(得分:4)

示例代码:

print "%x"%int("2a",16)

答案 2 :(得分:3)

您是否在询问如何将字符串格式十六进制值'16'转换为整数(即​​最终得到一个十进制值为22的整数)?你的问题并不清楚。如果是这样,你可能想要int('16',16)

答案 3 :(得分:2)

使用字符串格式化程序(新的第一个,然后是旧的):

>>> '{:x}'.format( 12345678 )
'bc614e'

>>> '%x' % ( 12345678 )
'bc614e'

答案 4 :(得分:1)

你的代码适合我,没有添加撇号。

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
>>> _

顺便说一句,请注意,没有“十六进制数”这样的东西。十六进制只是指定数字值的一种方法。在计算机的内存中,数值通常以二进制表示,无论它在源代码中如何指定(十进制,十六进制,等等)。

干杯&第h。,

- Alf

答案 5 :(得分:0)

在MS Windows Vista上使用Python 2.6.5,命令行解释器的行为方式如下:

>>>hex(16)
'0x10'
>>>print hex(16)
0x10

我想这是正常行为:

>>>'abc'
'abc'
>>>print 'abc'
abc

我希望它有所帮助

答案 6 :(得分:0)

我认为这里的大多数答案都被误解了,或者他们错误地理解了这个问题。

要回答您的问题,将结果的十六进制数据的字符串表示形式转换为十六进制数字(整数表示形式)是不可能的。

因为,当您通过执行以下操作将整数转换为十六进制时

>>> a = hex(34)
>>> print type(a)
<type 'str'>
>>> print a
0x22
>>> a
'0x22'

这里有些答案很困惑,

>>> print a
0x22
>>> a
'0x22'

当您在解释器中键入 print a 时,将得到字符串数据 WITHOUT 引号;如果您仅键入变量名称而不使用print语句,则它将打印字符串数据单引号/双引号。

尽管结果值为十六进制数据,但表示形式为 STRING

根据Python文档,您不能像我之前所说的那样转换为十六进制数字。

谢谢。

答案 7 :(得分:-2)

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