Lua, lidando com fluxos de bytes não ascii, alteração de ordem de byte

Necessidade de codificar e decodificar byte-stream (possivelmente contendo caracteres não-ascii) de / para uint16, uint32, uint64 (seu significado típico de C / C ++), cuidando da continuidade. Qual é uma maneira eficiente e esperançosamente multiplataforma de fazer uma coisa dessas em Lua?

Meu arco de destino é o x86_64 de 64 bits, mas gostaria de mantê-lo portátil (se não me custar em termos de desempenho).

por exemplo.

decodificar (digamos atualmente em uma sequência Lua) - 0x00, 0x1d, 0xff, 0x23, 0x44, 0x32 (little endian) como - uint16: (0x1d00) = 7424 uint32: (0x324423ff) = 843326463

Seria ótimo se alguém pudesse explicar com um exemplo.

questionAnswers(3)

yourAnswerToTheQuestion