← retour aux snippets

struct: pack/unpack et endianness

Encoder des entiers/flottants en binaire avec ordre des octets.

objectif

Encoder des entiers/flottants en binaire avec ordre des octets.

code minimal

import struct
b = struct.pack(">I", 0x11223344)  # big-endian unsigned int
val, = struct.unpack(">I", b)
print(val == 0x11223344)  # attendu: True

utilisation

import struct
b = struct.pack("<h", -2)  # little-endian short
print(struct.unpack("<h", b)[0] == -2)

variante(s) utile(s)

import struct
fmt = ">f"  # float32 big-endian
v = struct.unpack(fmt, struct.pack(fmt, 3.5))[0]
print(abs(v - 3.5) < 1e-6)

notes

  • Préfixes: ”>” big-endian, ”<” little-endian, ”!” network (big).
  • Utilisez des formats explicites pour la portabilité.