Lua:bAnd

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

<> Reference

function bAnd(int1, int2) : Integer

Performs a bitwise AND operation between two integer values. This function behaves the same as Lua's bitwise AND operator (&) in Cheat Engine. It is commonly used to check whether specific bits are set or to filter bitmask values.

Function Parameters

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

Returns

An integer representing the result of the bitwise AND operation.

Description

The bitwise AND operation compares each bit of the two integers and sets the bit in the result to 1 only if both bits are 1. This is often used for:

  • Checking whether a specific flag is enabled
  • Filtering unwanted bits
  • Performing masked comparisons

Binary example:

1101   (13)
0101   (5)
----
0101   (5)

Usage Examples

Simple bitwise AND:

1 print( bAnd(13, 5) )   -- 5

Using Lua's AND operator (equivalent):

1 print( 13 & 5 )        -- 5

Checking if a specific flag is set:

1 local FLAGS = 0x0D   -- 1101
2 local CHECK = 0x04   -- 0100
3 
4 if bAnd(FLAGS, CHECK) ~= 0 then
5   print("Flag is set!")
6 end

Clearing bits using AND with a mask:

1 local value = 0x0F      -- 1111
2 local mask  = 0xF0      -- clears lower bits
3 local result = bAnd(value, mask)
4 print(string.format("0x%X", result))

Behavior

  • Returns an integer value.
  • Only works on numeric inputs.
  • Equivalent to Lua's native bitwise AND operator (&) in Cheat Engine.
  • Commonly used for feature flags, filtering, and masked logic.

Advanced Examples

Extracting a subset of bits (bitmask extraction):

1 local value = 0x3A   -- 00111010
2 local mask  = 0x0F   -- 00001111
3 local lowerNibble = bAnd(value, mask)
4 print(string.format("Lower nibble: %X", lowerNibble))

Checking multiple flags:

1 local flags = 0x37   -- 110111
2 local needed = 0x21  -- 100001
3 
4 if bAnd(flags, needed) == needed then
5   print("All required flags are set")
6 end

See Also

Main Pages

Bitwise Related Lua Functions

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