Brian Dunning's FileMaker Custom Functions

BitOperationX ( wordNr ; RC ; n ; OPC ; OP1 ; OP2 )

bitwise logical operation

  Average rating: 4.6 (28 votes) Log in to vote

Erich Schmidt   Erich Schmidt

Share on Facebook Share on Twitter

  Sample input:
BitOperationX( 0 ; 0 ; 2 ; 9 ; 2^30 - 1; 2^11 - 2^8 )
  Sample output:
3,221,227,264

  Function definition: (Copy & paste into FileMaker's Edit Custom Function window)

The parameters OP1 and OP2 can be large integer numbers (where at least one of them is greater than 65,535). The function value is the result of a bitwise logical operation between OP1 and OP2. This Function works just as BitOperation(), unlike this function 16*n bits are processed.

Requires other Custom Functions:
BitLsbOperation()
BitOperation()

Notes:
Function call at the highest recursion level requires the first both parameters are set to 0.
Therefore, it's more comfortable to encapsulate this function by calling for instance
BitOpX( n ; OPC ; OP1 ; OP2 ) = BitOperationX( 0 ; 0 ; n ; OPC ; OP1 ; OP2 )

Parameters:
wordNr, RC these parameters must be set to 0 by the caller. Otherwise it leads to faulty results.
n number of 16-bit units to process
OP1;OP2 any integer values
OPC can be any integer number from 0 to 15

OPC=0 is true, if OP1 AND NOT OP1 is true (never)
OPC=1 is true, if NOT (OP1 OR OP2) is true
OPC=2 is true, if NOT OP1 AND OP2 is true
OPC=3 is true, if NOT OP1 is true
OPC=4 is true, if OP1 AND NOT OP2 is true
OPC=5 is true, if NOT OP2 is true
OPC=6 is true, if OP1 XOR OP2 is true (exclusive or)
OPC=7 is true, if NOT (OP1 AND OP2) is true
OPC=8 is true, if OP1 AND OP2 is true (conjunction)
OPC=9 is true, if NOT ( OP1 XOR OP2) is true (equivalence)
OPC=10 is true, if OP2 is true
OPC=11 is true, if NOT OP1 OR OP2 is true
OPC=12 is true, if OP1 is true
OPC=13 is true, if OP1 OR NOT OP2 is true
OPC=14 is true, if OP1 OR OP2 is true (disjunction)
OPC=15 ist true, if OP1 OR NOT OP1 is true (always)

 

Comments

Log in to post comments.

 

Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.

Under construction. Email me your wish list for improvements.