簡體   English   中英

以二進制格式將數字寫入lua文件中

[英]Write numbers to a file in lua in binary format

我有一個大數組,里面有我想寫入文件的數字。

但如果我這樣做:

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

我只是將數字作為字符串寫入文件。 如何為要歸檔的數字寫入正確的字節。 以及我以后如何從中閱讀。

您可以使用lua 結構對二進制轉換進行更細粒度的控制。

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

嘗試這個

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)

還有這個

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))

這些適用於 32 位整數並首先輸出最高有效字節。 根據需要進行調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM