Difference between revisions of "Lua:floatToByteTable"
m |
m (Syntax Highlighting.) |
||
| Line 37: | Line 37: | ||
===Examples=== | ===Examples=== | ||
| − | < | + | <syntaxhighlight lang="lua" line> |
local bytes = floatToByteTable(3.14) | local bytes = floatToByteTable(3.14) | ||
for i, b in ipairs(bytes) do | for i, b in ipairs(bytes) do | ||
| Line 43: | Line 43: | ||
end | end | ||
-- Output: 4 bytes representing the float in little-endian order | -- Output: 4 bytes representing the float in little-endian order | ||
| − | </ | + | </syntaxhighlight> |
{{LuaSeeAlso}} | {{LuaSeeAlso}} | ||
{{ReadWriteMemory}} | {{ReadWriteMemory}} | ||
Latest revision as of 15:45, 25 June 2026
Converts a single precision (32-bit) floating point number to a table of bytes.
Function Parameters[edit]
| Parameter | Type | Description |
|---|---|---|
| Number | Number | The single precision floating point value to convert. |
Returns[edit]
Table — A table containing the bytes representing the float.
Explanation[edit]
The "ToByteTable" functions convert a value (such as an integer or floating-point number) into a table of bytes that represent how the value is stored in memory.
For example, if you use wordToByteTable(1337):
- The decimal number 1337 is 0x0539 in hexadecimal.
- Computers typically use little-endian order, meaning the least significant byte comes first.
- So, 0x0539 is split into two bytes: 0x39 (57 in decimal) and 0x05 (5 in decimal).
- The resulting byte table is {0x39, 0x05} or {57, 5}.
This means:
- bytes[1] = 0x39 (the low byte)
- bytes[2] = 0x05 (the high byte)
This process applies to all "ToByteTable" functions: They break down the value into its raw bytes, ordered from least significant to most significant (little-endian).
Examples[edit]
1 local bytes = floatToByteTable(3.14)
2 for i, b in ipairs(bytes) do
3 print(string.format("Byte %d: %02X", i, b))
4 end
5 -- Output: 4 bytes representing the float in little-endian order