0

次のようにユーザー データを変換するにはどうすればよいですか。

local user_data = { 0x33, 0x22, 0x11, 0x00 }

Luaを使用してuint32またはfloatのいずれかに?これについて説明しているドキュメントは見つかりません。

さまざまな方法を試しましたが、どれもうまくいきませんでした:

local data_uint32 = tonumber(user_data)
local data_uint32 = user_data:uint32()
local data_uint32 = uint32(user_data)
4

1 に答える 1

4

私はむしろ自分の関数を定義したいと思います:

function toUInt32(user_data)
    return user_data[1] * 0x1000000
         + user_data[2] * 0x10000
         + user_data[3] * 0x100
         + user_data[4]
end
print(toUInt32(user_data))

これを行うための事前定義されたライブラリ関数がわかりません。

注:数値のエンディアンを考慮することをお勧めします。

于 2011-03-17T18:43:30.360 に答える