¿Cómo convertir un int a una cadena hexadecimal?
Quiero tomar un número entero (que será <= 255) a una representación de cadena hexadecimal
Por ejemplo: quiero pasar 65
y salir '\x41'
, o 255
y llegar '\xff'
.
Intenté hacer esto con struct.pack('c',
65 )
, pero eso ahoga todo lo anterior 9
ya que quiere aceptar una cadena de un solo carácter.
Estás buscando la chr
función.
Parece que estás mezclando representaciones decimales de números enteros y representaciones hexadecimales de números enteros, por lo que no está del todo claro lo que necesitas. Según la descripción que diste, creo que uno de estos fragmentos muestra lo que quieres.
>>> chr(0x65) == '\x65'
True
>>> hex(65)
'0x41'
>>> chr(65) == '\x41'
True
Tenga en cuenta que esto es bastante diferente de una cadena que contiene un número entero en formato hexadecimal . Si eso es lo que quieres, usa el hex
archivo incorporado.
Esto convertirá un número entero en una cadena hexadecimal de 2 dígitos con el prefijo 0x:
strHex = "0x%0.2X" % integerVariable
Qué pasa hex()
?
hex(255) # 0xff
Si realmente quieres tener \
delante puedes hacer:
print '\\' + hex(255)[1:]