Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Convertir STR a HEX
#1
Hola a todos


Tengo la siguiente duda:

Necesito convertir un string con este formato 01AB00DEFF y crear una lista de
numeros hex,  es decir [0x01, 0xAB, 0x00, 0xDE, 0xFF]

He probado lo siguiente, pero me devuelve una lista de strings y lo que necesito es que la lista tenga números HEX

cmd="01AB00DEFF"
cmd2 = (','.join("0x%s" % cmd[i : i + 2] for i in range(0, len(cmd), 2)))

cmd2= ['0xAB, 0x00, 0xDE, 0xFF']


Agradezco de antemano vuestra ayuda


Saludos
Responder
#2
Hola, ¿cómo estás?

El problema es que no hay algo así como un número hexadecimal, ni en Python ni en ningún otro lenguaje. Para Python 42 y 0x2A son exactamente el mismo número y tienen el mismo tipo de dato:

Código:
>>> 42 == 0x2A
True
>>> type(42) == type(0x2A)
True

Teniendo en cuenta esto, lo que podés hacer es lo siguiente (modificando un poco tu código) para tener una lista de números enteros:

Código:
>>> cmd = "01AB00DEFF"
>>> cmd2 = [int(cmd[i : i + 2], 16) for i in range(0, len(cmd), 2)]
>>> cmd2
[1, 171, 0, 222, 255]

(El 16 del int() de la segunda línea indica que estás convirtiendo una cadena que representa un número hexadecimal).

La lista [1, 171, 0, 222, 255] es exactamente la misma que [0x01, 0xAB, 0x00, 0xDE, 0xFF]. Si querés tener los números representados (como cadenas) en hexadecimal para imprimirlos en pantalla o mostrarlos en algún lado, podés hacer:

Código:
>>> list(map(hex, cmd2))
['0x1', '0xab', '0x0', '0xde', '0xff']

Sobre las funciones hex() e int(): https://micro.recursospython.com/recurso...cimal.html.

Saludos!
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#3
Hola Francisco



Muchas gracias por tu respuesta



Tenía claro ell concepto de igualdad en cuanto al tipo de dato tanto en HEX como en decimal, pero donde me perdia es en
las conversiones  y más aun en el "troceado" de la trama y almacenamiento en listas


Más sencillo no podía ser, pero como decía aquel, si llega a ser un toro....


Lo dicho, muchas gracias
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)