Lua, traitement de la non-ascii octet ruisseaux, byteorder changement

Besoin d'encoder & décoder octet-stream (contenant des caractères non-ascii peut-être), à partir de/dans uint16, uint32, uint64 (typique C/C++ sens), en prenant soin de l'endianness. Ce qui est efficace & j'espère que la croix-plate-forme de façon à faire une telle chose en Lua ?

Ma cible arch 64 bits x86_64, mais souhaitez garder portable (si cela ne coûte pas moi sur la performance à l'avant).

par exemple

décoder (disons actuellement en Lua string) --
0x00, 0x1d, 0xff, 0x23, 0x44, 0x32 (little endian)
as -
uint16: (0x1d00) = 7424
uint32: (0x324423ff) = 843326463

Serait génial si quelqu'un peut expliquer avec un exemple.

OriginalL'auteur mike.dinnone | 2011-03-09