# Math Filters

Bitwise Operators: Working on bytes, or Data Types comprising of bytes like ints, floats, doubles or even data structures which store large amounts of bytes is normal for a programmer. In some cases, a programmer needs to go beyond this - that is to say, on a deeper level where the importance of bits is realized.

Operations with bits are used in Data Compression (data is compressed by converting it from one representation to another, to reduce the space), Exclusive-Or Encryption (an algorithm to encrypt the data for safety issues). In order to encode, decode, or compress files we have to extract the data at bit level. Bitwise Operations are faster and closer to the system and sometimes optimize the program to a good level.

We all know that 1 byte comprises of 8 bits and any integer or character can be represented using bits in computers, which we call its binary form(contains only 1 or 0) or in its base 2 form.

Bitwise_and: Bitwise AND 2 values together and return the answer The output of bitwise AND is 1 if the corresponding bits of two operands is 1. If either bit of an operand is 0, the result of the corresponding bit is evaluated to 0. Here's an example with the binary values written out:

`12 = 00001100 (In Binary)25 = 00011001 (In Binary)​Bit Operation of 12 and 25  00001100& 00011001  ________  00001000  = 8 (In decimal)`

We will set up the same example in Xano and change the number variable to 12. We will add the filter bitwise_and with the value 25:

Bitwise_or: Bitwise OR 2 values together and return the answer The output of bitwise OR is 1 if at least one corresponding bit of two operands is 1. In C Programming, bitwise OR operator is denoted by |. Here's an example with the binary values written out:

`12 = 00001100 (In Binary)25 = 00011001 (In Binary)​Bitwise OR Operation of 12 and 25  00001100| 00011001  ________  00011101  = 29 (In decimal)`

We will set up the same example in Xano and change the number variable to 12. We will add the filter Bitwise_OR with the value 25:

Bitwise_xor: Bitwise XOR 2 values together and return the answer The result of bitwise XOR operator is 1 if the corresponding bits of two operands are opposite. It is denoted by ^. The exclusive-or operation takes two inputs and returns a 1 if either one or the other of the inputs is a 1, but not if both are. That is, if both inputs are 1 or both inputs are 0, it returns 0. Bitwise exclusive-or, with the operator of a caret, ^, performs the exclusive-or operation on each pair of bits. Exclusive-or is commonly abbreviated XOR. Here's an example with the binary values written out:

`12 = 00001100 (In Binary)25 = 00011001 (In Binary)​Bitwise XOR Operation of 12 and 25  00001100^ 00011001  ________  00010101  = 21 (In decimal)`

We will set up the same example in Xano and change the number variable to 12. We will add the filter Bitwise_xor with the value 25:

Ceil: Round fractions up to their integer equivalent.

Divide: Divides 2 values together and returns the answer.

Floor: Round fractions down to their integer equivalent.

Modulus: Modulus 2 values together and return the answer The modulus (or "modulo" or "mod") is the remainder after dividing one number by another.

Multiply: Multiplies 2 values together and returns the answer.

Round: Round fractions their integer equivalent.

Subtract: Subtracts 2 values together and returns the answer.

## Special Array math filters

Max: Returns the max of the values of the array. In this example, the variable array is [ 1, 2, 3, 4, 5].

Min: Returns the min of the values of the array. In this example, the variable array is [ 1, 2, 3, 4, 5].

Product: Returns the product of the values of the array. In this example, the variable array is [ 1, 2, 3, 4, 5].

## ​

Sum: Returns the sum of the values of the array. In this example, the variable array is [ 1, 2, 3, 4, 5].