如何从字节中获取数字?

问题描述 投票:0回答:1

我目前正在尝试使用Lua 5.1字节码。我已经走得很远,并且了解了很多。但是,我对指令和数字的问题感到困惑。我知道指令和数字的大小是在标题中定位和定义的,但我不知道如何从4个字节(或标题中指定的任何大小)中获取实际数字。

我查看了ChunkSpy的输出,我真的不明白它是如何从这些字节到数字的。我会查看源代码,但我不想复制它,我想了解它。如果有人能告诉我一点,或者甚至指出我正确的方向,我将非常感激。

谢谢!

lua bytecode
1个回答
1
投票

A No-Frills Introduction to Lua 5.1 VM Instructions,数字存储在常量池中。

第一个字节是3 = LUA_TNUMBER。

接下来的字节是数字,长度在标题中给出。解释基于标题中给出的长度,字节顺序和积分标志。

通常,8字节的非整数表示IEEE 754 64位双精度。

将字节反序列化为double需要提取尾数和指数的位,并将它们与算术运算相结合。也许你希望这是一个挑战,并从标准的描述开始:What Every Computer Scientist Should Know About Floating-Point Arithmetic,“格式和操作”部分。

© www.soinside.com 2019 - 2024. All rights reserved.