Difference between revisions of "Lua:bAnd"

From Cheat Engine
Jump to navigation Jump to search
(Created page with "<h2>bAnd(int1, int2) : Binary And</h2> <pre> -- 1 & 2 print( bAnd(1,2) ) -- 0 0001 0010 ----- 0000 </pre>")
 
m (Syntax Highlighting.)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<h2>bAnd(int1, int2) : Binary And</h2>
+
[[Category:Lua]]
 +
{{CodeBox|'''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 (<code>&</code>) in Cheat Engine. It is commonly used to check whether specific bits are set or to filter bitmask values.
 +
 
 +
=== Function Parameters ===
 +
{|width="85%" cellpadding="10%" cellpadding="5%" cellspacing="0" border="0"
 +
!align="left"|Parameter
 +
!align="left"|Type
 +
!style="width: 80%;" align="left"|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:'''
 +
 
 
<pre>
 
<pre>
-- 1 & 2
+
1101  (13)
print( bAnd(1,2) ) -- 0
+
0101  (5)
 +
----
 +
0101  (5)
 +
</pre>
 +
 
 +
=== Usage Examples ===
 +
'''Simple bitwise AND:'''
 +
 
 +
<syntaxhighlight lang="lua" line>
 +
print( bAnd(13, 5) )   -- 5
 +
</syntaxhighlight>
 +
 
 +
'''Using Lua's AND operator (equivalent):'''
 +
 
 +
<syntaxhighlight lang="lua" line>
 +
print( 13 & 5 )        -- 5
 +
</syntaxhighlight>
 +
 
 +
'''Checking if a specific flag is set:'''
 +
 
 +
<syntaxhighlight lang="lua" line>
 +
local FLAGS = 0x0D  -- 1101
 +
local CHECK = 0x04  -- 0100
 +
 
 +
if bAnd(FLAGS, CHECK) ~= 0 then
 +
  print("Flag is set!")
 +
end
 +
</syntaxhighlight>
 +
 
 +
'''Clearing bits using AND with a mask:'''
  
0001
+
<syntaxhighlight lang="lua" line>
0010
+
local value = 0x0F      -- 1111
-----
+
local mask  = 0xF0      -- clears lower bits
0000
+
local result = bAnd(value, mask)
</pre>
+
print(string.format("0x%X", result))
 +
</syntaxhighlight>
 +
 
 +
=== Behavior ===
 +
 
 +
* Returns an integer value.
 +
* Only works on numeric inputs.
 +
* Equivalent to Lua's native bitwise AND operator (<code>&</code>) in Cheat Engine.
 +
* Commonly used for feature flags, filtering, and masked logic.
 +
 
 +
=== Advanced Examples ===
 +
'''Extracting a subset of bits (bitmask extraction):'''
 +
 
 +
<syntaxhighlight lang="lua" line>
 +
local value = 0x3A  -- 00111010
 +
local mask  = 0x0F  -- 00001111
 +
local lowerNibble = bAnd(value, mask)
 +
print(string.format("Lower nibble: %X", lowerNibble))
 +
</syntaxhighlight>
 +
 
 +
'''Checking multiple flags:'''
 +
 
 +
<syntaxhighlight lang="lua" line>
 +
local flags = 0x37  -- 110111
 +
local needed = 0x21  -- 100001
 +
 
 +
if bAnd(flags, needed) == needed then
 +
  print("All required flags are set")
 +
end
 +
</syntaxhighlight>
 +
 
 +
{{LuaSeeAlso}}
 +
 
 +
{{BinaryOps}}

Latest revision as of 20:02, 25 June 2026

<> Lua API 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[edit]

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[edit]

An integer representing the result of the bitwise AND operation.

Description[edit]

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[edit]

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[edit]

  • 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[edit]

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

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