Difference between revisions of "Lua:qwordToByteTable"
(Created page with ''''function''' qwordToByteTable(''Number'') Converts a QWORD (8 bytes) to a byte table. Note: If the number is a float only the integer no greater than or no less than the giv…') |
m (Syntax Highlighting.) |
||
| (11 intermediate revisions by 5 users not shown) | |||
| Line 1: | Line 1: | ||
| − | '''function''' qwordToByteTable(''Number'') | + | [[Category:Lua]] |
| + | {{CodeBox|'''function''' qwordToByteTable(''Number'') ''':''' Table}} | ||
| − | Converts a | + | Converts a 64-bit qword (integer) to a table of bytes. |
| − | + | ===Function Parameters=== | |
| − | + | {|width="85%" cellpadding="10%" cellspacing="0" border="0" | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | === Function Parameters === | ||
| − | {|width="85%" cellpadding="10 | ||
!align="left"|Parameter | !align="left"|Parameter | ||
!align="left"|Type | !align="left"|Type | ||
| Line 23: | Line 11: | ||
|- | |- | ||
|Number | |Number | ||
| − | | | + | |Integer |
| − | |The | + | |The 64-bit qword to convert. |
|} | |} | ||
| + | ===Returns=== | ||
| + | Table — A table containing the bytes representing the qword. | ||
| − | == | + | ===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=== | ||
| + | <syntaxhighlight lang="lua" line> | ||
| + | local bytes = qwordToByteTable(0x1122334455667788) | ||
| + | for i, b in ipairs(bytes) do | ||
| + | print(string.format("Byte %d: %02X", i, b)) | ||
| + | end | ||
| + | -- Output: Byte 1: 88, Byte 2: 77, ..., Byte 8: 11 (little-endian order) | ||
| + | </syntaxhighlight> | ||
| − | + | {{LuaSeeAlso}} | |
| − | |||
| − | |||
| − | + | {{ReadWriteMemory}} | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Latest revision as of 15:45, 25 June 2026
Converts a 64-bit qword (integer) to a table of bytes.
Function Parameters[edit]
| Parameter | Type | Description |
|---|---|---|
| Number | Integer | The 64-bit qword to convert. |
Returns[edit]
Table — A table containing the bytes representing the qword.
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 = qwordToByteTable(0x1122334455667788)
2 for i, b in ipairs(bytes) do
3 print(string.format("Byte %d: %02X", i, b))
4 end
5 -- Output: Byte 1: 88, Byte 2: 77, ..., Byte 8: 11 (little-endian order)