Volver |
Tipos de datos
Interpretación de bytes
Python ofrece un módulo struct que permite generar variables pero en array de bytes y, viceversa, puede leer un array de bytes y obtener un tipo de dato.
Por ejemplo, si queremos generar un unsigned int en un array de bytes:
from struct import *
pack("I", 192)
Esto dará como resultado:
b'\xc0\x00\x00\x00'
Este array de bytes se lo puede leer desde un programa C, sin problemas:
#include <stdint.h>
#include <stdio.h>
uint32_t convert(char c[]) {
return *(uint32_t*) c;
}
int main(void) {
char c[] = { 0xc0, 0x00, 0x00, 0x00, 0x12, '1', 0x00, 0x00 };
uint32_t signal = convert(c);
uint32_t pid = convert(&c[4]);
printf("Signal=%u\n", signal);
printf("PID=%u\n", pid);
}
Referencias: