jax.numpy.bitwise_xor(x1, x2)

Compute the bit-wise XOR of two arrays element-wise.

LAX-backend implementation of bitwise_xor(). Original docstring below.

bitwise_xor(x1, x2, /, out=None, *, where=True, casting=’same_kind’, order=’K’, dtype=None, subok=True[, signature, extobj])

Computes the bit-wise XOR of the underlying binary representation of the integers in the input arrays. This ufunc implements the C/Python operator ^.


x2 (x1,) – Only integer and boolean types are handled. If x1.shape != x2.shape, they must be broadcastable to a common shape (which becomes the shape of the output).


out – Result. This is a scalar if both x1 and x2 are scalars.

Return type

ndarray or scalar

See also

logical_xor(), bitwise_and(), bitwise_or()


Return the binary representation of the input number as a string.


The number 13 is represented by 00001101. Likewise, 17 is represented by 00010001. The bit-wise XOR of 13 and 17 is therefore 00011100, or 28:

>>> np.bitwise_xor(13, 17)
>>> np.binary_repr(28)
>>> np.bitwise_xor(31, 5)
>>> np.bitwise_xor([31,3], 5)
array([26,  6])
>>> np.bitwise_xor([31,3], [5,6])
array([26,  5])
>>> np.bitwise_xor([True, True], [False, True])
array([ True, False])