Как мне преобразовать userdata в uint32 или float? - PullRequest
0 голосов
/ 17 марта 2011

Как мне преобразовать данные пользователя так:

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

либо в uint32, либо в плавающий режим с использованием Lua? Я не могу найти ничего в документации, которая говорит об этом.

Я пробовал различные методы, и ни один из них не работал:

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

1 Ответ

4 голосов
/ 17 марта 2011

Я бы лучше определил свою собственную функцию:

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

Не знаю какой-либо предопределенной библиотечной функции для этого.

Примечание. Возможно, вы захотите рассмотреть порядок байтовчисло.

...