Lua:bXor

From Cheat Engine
Revision as of 20:02, 25 June 2026 by Leunsel (talk | contribs) (Syntax Highlighting.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

<> Lua API Reference

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

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

An integer representing the result of the bitwise XOR operation.

Description

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

Simple bitwise XOR:

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

Using Lua's XOR operator (equivalent):

1 print( 3 ~ 5 )        -- 6

Toggling flags with XOR:

1 local FLAG = 0x04
2 local value = 0x04
3 
4 -- Toggle bit 2
5 toggled = bXor(value, FLAG)
6 print(string.format("0x%X", toggled))

Detecting bit differences:

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

Behavior

  • 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

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

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

XOR-based encryption/decryption (simple):

1 local key = 0x55
2 local original = 0x22
3 
4 local encrypted = bXor(original, key)
5 local decrypted = bXor(encrypted, key)
6 
7 print(encrypted, decrypted)

Main Pages

Core Lua documentation entry points

Lua
Script Engine

Bitwise Related Lua Functions

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