Difference between revisions of "Lua:floatToByteTable"
(Created page with ''''function''' floatToByteTable(''Number'') Converts a DWORD (4 bytes), interpreted as a single precision floating point, to a byte table. === Function Parameters === {|width=…') |
m |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | '''function''' floatToByteTable(''Number'') | + | [[Category:Lua]] |
+ | '''function''' floatToByteTable(''Number'') ''':''' Table | ||
− | Converts a | + | Converts a single precision (32-bit) floating point number to a table of bytes. |
− | + | ===Function Parameters=== | |
− | === Function Parameters === | + | {|width="85%" cellpadding="10%" cellspacing="0" border="0" |
− | {|width="85%" cellpadding="10 | ||
!align="left"|Parameter | !align="left"|Parameter | ||
!align="left"|Type | !align="left"|Type | ||
Line 11: | Line 11: | ||
|- | |- | ||
|Number | |Number | ||
− | | | + | |Number |
− | |The | + | |The single precision floating point value to convert. |
|} | |} | ||
+ | ===Returns=== | ||
+ | Table — A table containing the bytes representing the float. | ||
− | == | + | ===Explanation=== |
− | |||
− | |||
− | |||
− | + | 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 <code>wordToByteTable(1337)</code>: | |
− | |||
− | |||
− | |||
− | |||
+ | - The decimal number <code>1337</code> is <code>0x0539</code> in hexadecimal. | ||
+ | - Computers typically use little-endian order, meaning the least significant byte comes first. | ||
+ | - So, <code>0x0539</code> is split into two bytes: <code>0x39</code> (57 in decimal) and <code>0x05</code> (5 in decimal). | ||
+ | - The resulting byte table is <code>{0x39, 0x05}</code> or <code>{57, 5}</code>. | ||
− | + | This means: | |
− | + | - <code>bytes[1] = 0x39</code> (the low byte) | |
− | + | - <code>bytes[2] = 0x05</code> (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=== | ||
+ | <pre> | ||
+ | local bytes = floatToByteTable(3.14) | ||
+ | for i, b in ipairs(bytes) do | ||
+ | print(string.format("Byte %d: %02X", i, b)) | ||
+ | end | ||
+ | -- Output: 4 bytes representing the float in little-endian order | ||
+ | </pre> | ||
− | + | {{LuaSeeAlso}} | |
− | |||
− | |||
=== Related Functions === | === Related Functions === | ||
− | + | {{ReadWriteMemory}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 17:34, 11 July 2025
function floatToByteTable(Number) : Table
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]
local bytes = floatToByteTable(3.14) for i, b in ipairs(bytes) do print(string.format("Byte %d: %02X", i, b)) end -- Output: 4 bytes representing the float in little-endian order
See also[edit]
Related Functions[edit]
- readBytes
- readSmallInteger
- readInteger
- readQword
- readPointer
- readFloat
- readDouble
- readString
- writeBytes
- writeSmallInteger
- writeInteger
- writeQword
- writeFloat
- writeDouble
- writeString
- readBytesLocal
- readIntegerLocal
- readQwordLocal
- readPointerLocal
- readFloatLocal
- readDoubleLocal
- readStringLocal
- writeBytesLocal
- writeIntegerLocal
- writeQwordLocal
- writeFloatLocal
- writeDoubleLocal
- writeStringLocal
- wordToByteTable
- dwordToByteTable
- qwordToByteTable
- floatToByteTable
- doubleToByteTable
- stringToByteTable
- wideStringToByteTable
- byteTableToWord
- byteTableToDword
- byteTableToQword
- byteTableToFloat
- byteTableToDouble
- byteTableToString
- byteTableToWideString