Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Problema al pasar un data floatante a bytes
#2
Hola, bienvenido.

El operador >> (bitwise shift) no puede aplicarse sobre números de coma flotante. Si querés representar un float como un conjunto de bytes, te recomiendo que lo hagas vía el módulo estándar struct:

Código:
# Codificar como bytes el número 12.4.
>>> import struct
>>> data = struct.pack("<f", 12.4)
>>> type(data)
<class 'bytes'>
>>> len(data)
4
>>> list(data)
[102, 102, 70, 65]

Luego podés hacer:

Código:
msg.DATA[0] = data[0]
msg.DATA[1] = data[1]
msg.DATA[2] = data[2]
msg.DATA[3] = data[3]

Chequeá la documentación del módulo struct para asegurarte de usar el formato correcto según la especificación del hardware al cual estás enviando los datos. En el ejemplo, "<f" codifica un float de 4-bytes usando little-endian.

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


Mensajes en este tema
RE: Problema al pasar un data floatante a bytes - por Francisco - 12-01-2022, 01:25 PM

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)