Difference between revisions of "Lua:qwordToByteTable"

From Cheat Engine
Jump to navigation Jump to search
(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 (Added CodeBox Template.)
 
(9 intermediate revisions by 5 users not shown)
Line 1: Line 1:
'''function''' qwordToByteTable(''Number'')
+
[[Category:Lua]]
 +
{{CodeBox|'''function''' qwordToByteTable(''Number'') ''':''' Table}}
  
Converts a QWORD (8 bytes) to a byte table.
+
Converts a 64-bit qword (integer) to a table of bytes.
  
 
+
===Function Parameters===
Note: If the number is a float only the integer no greater than or no less than the given value will be used.
+
{|width="85%" cellpadding="10%" cellspacing="0" border="0"
 
 
Same as value from 'math.floor'.
 
 
 
  i.e.: 8.1 : 8, 8.9 : 8, -8.1 : -8, -8.9 : -8
 
 
 
 
 
Note: If the number is larger than a QWORD (8 bytes) only the lower portion of the number will be used.
 
 
 
  i.e.: 0xFFFFFFFFFFFFFFFF00 : 0xFFFFFFFFFFFFFF00
 
          8 7 6 5 4 3 2 1 0      7 6 5 4 3 2 1 0
 
 
 
=== Function Parameters ===
 
{|width="85%" cellpadding="10%" cellpadding="5%" cellspacing="0" border="0"
 
 
!align="left"|Parameter
 
!align="left"|Parameter
 
!align="left"|Type
 
!align="left"|Type
Line 23: Line 11:
 
|-
 
|-
 
|Number
 
|Number
|number
+
|Integer
|The number to convert to a byte table
+
|The 64-bit qword to convert.
 
|}
 
|}
  
 +
===Returns===
 +
Table — A table containing the bytes representing the qword.
  
== Examples ==
+
===Explanation===
  local bt = qwordToByteTable(0xFFFFFFFFFFFFFFFF)
 
                              --7 6 5 4 3 2 1 0
 
  writeBytes('00123ABC', bt)
 
 
 
 
 
Code:
 
  local bt = qwordToByteTable(10)
 
  for i, v in ipairs(bt) do
 
    print(i - 1, string.format('%02X', v))
 
  end
 
 
 
Output:
 
  0 0A
 
  1 00
 
  2 00
 
  3 00
 
  4 00
 
  5 00
 
  6 00
 
  7 00
 
 
 
  
Code:
+
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.
  local bt = qwordToByteTable(10.9)
 
  for i, v in ipairs(bt) do
 
    print(i - 1, string.format('%02X', v))
 
  end
 
  
Output:
+
For example, if you use <code>wordToByteTable(1337)</code>:
  0 0A
 
  1 00
 
  2 00
 
  3 00
 
  4 00
 
  5 00
 
  6 00
 
  7 00
 
  
 +
- 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>.
  
Code:
+
This means:
  local bt = qwordToByteTable(0xFFFFFFFFFFFFFFFFFF00)
+
- <code>bytes[1] = 0x39</code> (the low byte)
                              --8 7 6 5 4 4 3 2 1 0
+
- <code>bytes[2] = 0x05</code> (the high byte)
  for i, v in ipairs(bt) do
 
    print(i - 1, string.format('%02X', v))
 
  end
 
  
Output:
+
This process applies to all "ToByteTable" functions:
  0 00
+
They break down the value into its raw bytes, ordered from least significant to most significant (little-endian).
  1 FF
 
  2 FF
 
  3 FF
 
  4 FF
 
  5 FF
 
  6 FF
 
  7 FF
 
  
 +
===Examples===
 +
<pre>
 +
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)
 +
</pre>
  
== See also ==
+
{{LuaSeeAlso}}
* [[Lua]]
 
* [[Help_File:Script engine|Script engine]]
 
  
 
=== Related Functions ===
 
=== Related Functions ===
* [[readBytes]]
+
{{ReadWriteMemory}}
* [[readInteger]]
 
* [[readQword]]
 
* [[readPointer]]
 
* [[readFloat]]
 
* [[readDouble]]
 
* [[readString]]
 
* [[writeBytes]]
 
* [[writeInteger]]
 
* [[writeQword]]
 
* [[writeFloat]]
 
* [[writeDouble]]
 
* [[writeString]]
 
* [[readBytesLocal]]
 
* [[readIntegerLocal]]
 
* [[readQwordLocal]]
 
* [[readPointerLocal]]
 
* [[readFloatLocal]]
 
* [[readDoubleLocal]]
 
* [[readStringLocal]]
 
* [[writeBytesLocal]]
 
* [[writeIntegerLocal]]
 
* [[writeQwordLocal]]
 
* [[writeFloatLocal]]
 
* [[writeDoubleLocal]]
 
* [[writeStringLocal]]
 
* [[wordToByteTable]]
 
* [[dwordToByteTable]]
 
* [[floatToByteTable]]
 
* [[doubleToByteTable]]
 
* [[stringToByteTable]]
 
* [[wideStringToByteTable]]
 
* [[byteTableToWord]]
 
* [[byteTableToDword]]
 
* [[byteTableToQword]]
 
* [[byteTableToFloat]]
 
* [[byteTableToDouble]]
 
* [[byteTableToString]]
 
* [[byteTableToWideString]]
 

Latest revision as of 23:10, 4 December 2025

<> Function

function qwordToByteTable(Number) : Table

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]

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)

See also[edit]

Lua
Script Engine

Related Functions[edit]

Read Functions
readBytes
readSmallInteger
readInteger
readQword
readPointer
readFloat
readDouble
readString
Read Functions (Local Process)
readBytesLocal
readIntegerLocal
readQwordLocal
readPointerLocal
readFloatLocal
readDoubleLocal
readStringLocal
Write Functions
writeBytes
writeSmallInteger
writeInteger
writeQword
writeFloat
writeDouble
writeString
Write Functions (Local Process)
writeBytesLocal
writeIntegerLocal
writeQwordLocal
writeFloatLocal
writeDoubleLocal
writeStringLocal
Byte Table Conversions (Value → Byte Table)
wordToByteTable
dwordToByteTable
qwordToByteTable
floatToByteTable
doubleToByteTable
stringToByteTable
wideStringToByteTable
Byte Table Conversions (Byte Table → Value)
byteTableToWord
byteTableToDword
byteTableToQword
byteTableToFloat
byteTableToDouble
byteTableToString
byteTableToWideString