Difference between revisions of "Lua:bXor"

From Cheat Engine
Jump to navigation Jump to search
(Major overhaul of the post.)
m (Added CodeBox Template.)
 
Line 1: Line 1:
 
[[Category:Lua]]
 
[[Category:Lua]]
'''function''' bXor(''int1'', ''int2'') ''':''' Integer
+
{{CodeBox|'''function''' bXor(''int1'', ''int2'') ''':''' Integer}}
  
 
Performs a bitwise XOR (exclusive OR) operation between two integer values. This function behaves the same as Lua's bitwise XOR operator (<code>~</code>) in Cheat Engine. It is used when toggling bits, detecting bit differences, or implementing specific bit-logic operations.
 
Performs a bitwise XOR (exclusive OR) operation between two integer values. This function behaves the same as Lua's bitwise XOR operator (<code>~</code>) in Cheat Engine. It is used when toggling bits, detecting bit differences, or implementing specific bit-logic operations.
Line 96: Line 96:
 
</pre>
 
</pre>
  
=== See Also ===
+
{{LuaSeeAlso}}
  
* [[Lua:bOr|bOr]] - Bitwise OR
+
{{BinaryOps}}
* [[Lua:bXor|bXor]] - Bitwise XOR
 
* [[Lua:bAnd|bAnd]] - Bitwise AND
 
* [[Lua:bShl|bShl]] - Bitwise Shift Left
 
* [[Lua:bShr|bShr]] - Bitwise Shift Right
 
* [[Lua:bNot|bNot]] - Bitwise NOT
 

Latest revision as of 23:41, 4 December 2025

<> Function

function bXor(int1, int2) : Integer

Performs a bitwise XOR (exclusive OR) operation between two integer values. This function behaves the same as Lua's bitwise XOR operator (~) in Cheat Engine. It is used when toggling bits, detecting bit differences, or implementing specific bit-logic operations.

Function Parameters[edit]

Parameter Type Description
int1 integer The first integer value used in the XOR operation.
int2 integer The second integer value used in the XOR operation.

Returns[edit]

An integer representing the result of the bitwise XOR operation.

Description[edit]

The XOR operation compares each bit of the two integers and sets the result bit to 1 only if the bits differ. If both bits are the same (both 0 or both 1), the result bit is 0.

Binary example:

0011   (3)
0101   (5)
----
0110   (6)

Usage Examples[edit]

Simple bitwise XOR:

print( bXor(3, 5) )   -- 6

Using Lua's XOR operator (equivalent):

print( 3 ~ 5 )        -- 6

Toggling flags with XOR:

local FLAG = 0x04
local value = 0x04

-- Toggle bit 2
toggled = bXor(value, FLAG)
print(string.format("0x%X", toggled))

Detecting bit differences:

local a = 0x0F
local b = 0x33
local diff = bXor(a, b)
print(string.format("Different bits: %X", diff))

Behavior[edit]

  • Returns an integer.
  • Only works on numeric values.
  • Equivalent to Lua's native XOR operator (~) in Cheat Engine.
  • Useful for flag toggling and detecting changed bits.

Advanced Examples[edit]

Clearing bits using XOR (when bit is known to be set):

local value = 0x0A   -- 1010
local clearBit = 0x02 -- bit 1
value = bXor(value, clearBit)
print(string.format("0x%X", value))

XOR-based encryption/decryption (simple):

local key = 0x55
local original = 0x22

local encrypted = bXor(original, key)
local decrypted = bXor(encrypted, key)

print(encrypted, decrypted)

See also[edit]

Lua
Script Engine

Related Functions[edit]

bOr – Bitwise OR
bXor – Bitwise XOR
bAnd – Bitwise AND
bShl – Bitwise Shift Left
bShr – Bitwise Shift Right
bNot – Bitwise NOT