# bitxorreduce

Reduce consecutive slice of bits to one bit by performing bitwise exclusive `OR` operation

## Syntax

``c = bitxorreduce(a)``
``c = bitxorreduce(a, lidx)``
``c = bitxorreduce(a, lidx, ridx)``

## Description

example

````c = bitxorreduce(a)` performs a bitwise exclusive `OR` operation on the entire set of bits in the fixed-point input, `a`. It returns the result as an unsigned integer of word length 1.```

example

````c = bitxorreduce(a, lidx)` performs a bitwise exclusive `OR` operation on a consecutive range of bits. This operation starts at position `lidx` and ends at the LSB (the bit at position 1). ```

example

````c = bitxorreduce(a, lidx, ridx)` performs a bitwise exclusive `OR` operation on a consecutive range of bits, starting at position `lidx` and ending at position `ridx`. The `bitxorreduce` arguments must satisfy the following condition:```a.WordLength >= lidx >= ridx >= 1``````

## Examples

collapse all

Create a fixed-point number.

```a = fi(73,0,8,0); disp(bin(a))```
```01001001 ```

Perform a bitwise exclusive `OR` operation on the entire set of bits in `a`.

`c = bitxorreduce(a)`
```c = 1 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 1 FractionLength: 0 ```

Create a fixed-point vector.

```a = fi([12,4,8,15],0,8,0); disp(bin(a))```
```00001100 00000100 00001000 00001111 ```

Perform a bitwise exclusive `OR` operation on the bits of each element of `a`, starting at position `fi(4)`.

`c = bitxorreduce(a,fi(4))`
```c=1×4 object 0 1 1 0 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 1 FractionLength: 0 ```

Create a fixed-point matrix.

```a = fi([7,8,1;5,9,5;8,37,2],0,8,0); disp(bin(a))```
```00000111 00001000 00000001 00000101 00001001 00000101 00001000 00100101 00000010 ```

Perform a bitwise exclusive `OR` operation on the bits of each element of matrix `a` beginning at position 5 and ending at position 2.

`c = bitxorreduce(a,5,2)`
```c=3×3 object 0 1 0 1 1 1 1 1 1 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 1 FractionLength: 0 ```

## Input Arguments

collapse all

Input array, specified as a scalar, vector, matrix, or multidimensional array of fixed-point `fi` objects.

`bitxorreduce` supports both signed and unsigned inputs with arbitrary scaling. The sign and scaling properties do not affect the result type and value. `bitxorreduce` performs the operation on a two's complement bit representation of the stored integer.

Data Types: fixed-point `fi`

Start position of range specified as a scalar of built-in type. `lidx` represents the position in the range closest to the MSB.

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

End position of range specified as a scalar of built-in type. `ridx` represents the position in the range closest to the LSB (the bit at position 1).

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

## Output Arguments

collapse all

Output array, specified as a scalar, vector, matrix, or multidimensional array of fixed-point `fi` objects. `c` is unsigned with word length 1.

## Extended Capabilities

### C/C++ Code GenerationGenerate C and C++ code using MATLAB® Coder™. 