Document toolboxDocument toolbox

Bitwise XOR (bxor, ^)

Description

Creates a new column that retrieves the Bitwise XOR of the specified arguments. Bitwise operations consider operands as bit patterns (zeros and ones) and work at the level of their individual bits.

The Bitwise XOR operation compares the equal-length binary representations of the selected pair of arguments and performs the logical exclusive OR operation. The result in each position is 1 if only the first bit is 1 or only the second bit is 1, but will be 0 if both are 0 or both are 1. The result is then transformed and given in decimal format.

For example, if you add values 7 and 9 as arguments, the result is 1110, which is converted to its corresponding decimal value (14).

7 → 0111
9 →  1001

How does it work in the search window?

Select Create column in the search window toolbar, then select the Bitwise XOR operation. You need to specify two arguments:

Argument

Data type

Argument

Data type

Number mandatory

integer 

Number mandatory

integer

The data type of the values in the new column is integer.


Example


We want to get the Bitwise XOR of the values in the posNumbers1_int and posNumbers2_int columns. To do it, we will create a new column using the Bitwise XOR operation. Let's call the new column bitXOR

The arguments needed to create the new column are:

  • Number posNumbers1_int column

  • NumberposNumbers2_int column

Click Create column and you will see the following result:

How does it work in LINQ?

Use the operator select... as...  and add the operation syntax to create the new column. These are the valid formats of the Bitwise XOR operation:

  • bxor(integer1, integer2)

  • integer1 ^ integer2

Example

You can copy the following LINQ scripts and try the above example on the my.upload.sample.data table.

from my.upload.sample.data select split(message, ";", 17) as posNumbers1 select split(message, ";", 18) as posNumbers2 select int(posNumbers1) as posNumbers1_int select int(posNumbers2) as posNumbers2_int select bxor(posNumbers1_int, posNumbers2_int) as bitXOR

or

from my.upload.sample.data select split(message, ";", 17) as posNumbers1 select split(message, ";", 18) as posNumbers2 select int(posNumbers1) as posNumbers1_int select int(posNumbers2) as posNumbers2_int select posNumbers1_int ^ posNumbers2_int as bitXOR