videos viceversa números numeros lenguaje leer explicacion decimales conversión como combinacion codigo binarios binario io lua binaryfiles

viceversa - videos de numeros binarios



Escribir números en un archivo en lua en formato binario (2)

Tengo una gran matriz con números que me gustaría escribir en un archivo.

Pero si hago esto:

local out = io.open("file.bin", "wb") local i = 4324234 out:write(i)

Solo estoy escribiendo el número como una cadena para el archivo. ¿Cómo escribo los bytes correctos para el número a archivar? ¿Y cómo puedo leer más tarde?


Prueba esto

function writebytes(f,x) local b4=string.char(x%256) x=(x-x%256)/256 local b3=string.char(x%256) x=(x-x%256)/256 local b2=string.char(x%256) x=(x-x%256)/256 local b1=string.char(x%256) x=(x-x%256)/256 f:write(b1,b2,b3,b4) end writebytes(out,i)

y también esto

function bytes(x) local b4=x%256 x=(x-x%256)/256 local b3=x%256 x=(x-x%256)/256 local b2=x%256 x=(x-x%256)/256 local b1=x%256 x=(x-x%256)/256 return string.char(b1,b2,b3,b4) end out:write(bytes(0x10203040))

Funcionan para enteros de 32 bits y generan primero el byte más significativo. Adaptarse según sea necesario.


Podría usar lua struct para obtener un control más detallado sobre la conversión binaria.

local struct = require(''struct'') out:write(struct.pack(''i4'',0x123432))