Brian Dunning's FileMaker Custom Functions

BitOp ( OPC ; OP1 ; OP2 )

bitwise logical operations

  Be the first to rate this function Log in to vote

Erich Schmidt   Erich Schmidt - Show more from this author

Share on Facebook Share on Twitter

  Sample input:
BitOp( 6 ; 145 ; 345)
BitOp( 14 ; 5 ; 12)
BitOp( 8 ; 5 ; 12)
  Sample output:
456
13
4

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

Function value is the result of any bitwise logical operation between the binary representation of the integer values OP1 and OP2. Only the 16 least significant bits are processed.
The operation is given by OPC, which can be any integer number from 0 to 15. OPC determines what operation is performed.

Parameters:
OP1; OP2 any integer values (numbers greater than 65,535 are possible, but
useless)
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 OP1 OR NOT 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)

Some simple examples

Set bit 2 and bit 5 in OP1. All other bits leave unchanged.

BitOp( 14 ; OP1 ; 2^2+2^5)

Toggle bit 0 , bit 3 and bit 12 in OP1. All other bits leave unchanged.

BitOp( 6 ; OP1 ; 2^0+2^3+2^12)

Clear bits 8 and 9 in OP1. All other leave unchanged.

BitOp( 4 ; OP1 ; 2^8+2^9)

Check, if one of bit 3 or 5 in OP1 is set.

It‘s true, if the expression BitOp( 8 ; OP1 ; 2^3+2^5) is true (not 0).

 

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.

Support this website.

This library has been a free commmunity resource for FileMaker users and developers for 20 years. It receives no funding and has no advertisements. If it has helped you out, I'd really appreciate it if you could contribute whatever you think it's worth: