# bitxor

## Syntax

• ``intout = bitxor(integ1,integ2)``
example
• ``intout = bitxor(integ1,integ2,assumedtype)``
example
• ``objout = bitxor(netobj1,netobj2)``

## Description

example

````intout = bitxor(integ1,integ2)` returns the bit-wise XOR of `integ1` and `integ2`. ```

example

````intout = bitxor(integ1,integ2,assumedtype)` assumes that `integ1` and `integ2` are of `assumedtype`.```
````objout = bitxor(netobj1,netobj2)` returns the bit-wise XOR of the .NET enumeration objects `netobj1` and `netobj2`.```

## Examples

collapse all

### Truth Table

Create a truth table for the logical XOR operation.

```A = uint8([0 1; 0 1]); B = uint8([0 0; 1 1]); TTable = bitxor(A, B)```
```TTable = 0 1 1 0```

`bitxor` returns 0 if both bit-wise inputs are equal.

### Negative Values

Explore how `bitxor` handles negative values.

MATLAB® encodes negative integers using two's complement. Thus, the bit-wise XOR of -5 (11111010) and 6 (00000110) is -3 (11111100).

```C = -5; D = 6; bitxor(C,D,'int8')```
```ans = -3```

## Input Arguments

collapse all

### `integ1`, `integ2` — Input valuessigned integer arrays | unsigned integer arrays | double arrays

Input values, specified as signed integer arrays, unsigned integer arrays, or double arrays. `integ1` and `integ2` must be the same data type, or one must be a scalar double value.

• If `integ1` and `integ2` are double arrays, and `assumedtype` is not specified, then MATLAB treats `integ1` and `integ2` as unsigned 64-bit integers.

• If `assumedtype` is specified, then all elements in `integ1` and `integ2` must have integer values within the range of `assumedtype`.

Data Types: `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64`

### `assumedtype` — Assumed data type of `integ1` and `integ2``'uint64'` | `'uint32'` | `'uint16'` | `'uint8'` | `'int64'` | `'int32'` | `'int16'` | `'int8'`

Assumed data type of `integ1` and `integ2`, specified as `'uint64'`, `'uint32'`, `'uint16'`, `'uint8'`, `'int64'`, `'int32'`, `'int16'`, or `'int8'`.

• If `integ1` and `integ2` are double arrays, then `assumedtype` can specify any valid integer type, but defaults to `'uint64'`.

• If `integ1` and `integ2` are integer type arrays, then `assumedtype` must specify that same integer type.

Data Types: `char`

### `netobj1`, `netobj2` — Input values.NET enumeration objects

Input values, specified as .NET enumeration objects. You must be running a version of Windows® to use .NET enumeration objects as input arguments.

`bitxor` is an instance method for MATLAB enumeration objects created from a .NET enumeration.

## Output Arguments

collapse all

### `intout` — Bit-wise XOR resultsigned integer array | unsigned integer array | double array

Bit-wise XOR result, returned as a signed integer array, unsigned integer array, or double array. `intout` is the same data type and size as `integ1` and `integ2`.

• If either `integ1` or `integ2` is a scalar double, and the other is a non-double integer type, `intout` is the non-double integer type.

### `objout` — Bit-wise XOR result.NET enumeration object

Bit-wise XOR result, returned as a .NET enumeration objects.