Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.

For information on migrating to InterSystems IRIS, see Why Migrate to InterSystems IRIS?

BITXOR

Returns the bitwise XOR for two bit strings.

Synopsis

BITXOR(bitstring1,bitstring2)

Arguments

bitstring A bit string, specified as an expression that resolves to a positive integer. For example, the integer 64 specifies the bitstring 1000000. The maximum bitstring value is 9223372036854775807.

Description

The BITXOR function compares two bit strings bit-by-bit, and returns a bitstring that is the logical exclusive or (XOR) bitwise comparison of the two strings. Both bitstring values are specified as positive integers. The returned value is also expressed as a positive integer.

The following is the truth table for BITXOR:

  bitstring1 = 0 bitstring1 = 1
bitstring2 = 0 0 1
bitstring2 = 1 1 0

A bitstring can be expressed as either a number or as a string. A number are converted to canonical form, with leading plus signs and leading and trailing zeros omitted. If either argument evaluates to the null string or a non-numeric string it is assumed to have a value of 0. A string is parsed as a number until a non-numeric character is encountered. Thus “7dwarves” is parsed as 7.

Examples

The following example specifies a bitstring1 of 14 (binary 1110), and a bitstring2 of 9 (binary 1001). Bitwise XOR comparison results in the binary string 0111, the integer value of which is 7:

PRINT BITXOR(14,9);  ! Returns 7

The following example specifies a bitstring1 of 14 (binary 1110), and a bitstring2 of 6 (binary 110). Bitwise XOR comparison results in the binary string 1000, the integer value of which is 8:

PRINT BITXOR(14,6);  ! Returns 8

The following example specifies a bitstring1 of 65 (binary 1000001), and a bitstring2 of 62 (binary 111110). Bitwise XOR comparison results in the binary string 1111111, the integer value of which is 127:

PRINT BITXOR(65,62);  ! Returns 127

The following example specifies two bitstrings with the same integer value. Bitwise XOR comparison of a number with itself always results in 0:

PRINT BITXOR(64,64);  ! Returns 0

See Also

Feedback