# bitrol

Bitwise rotate left

## Syntax

• ``c = bitrol(a, k)``
example

## Description

example

````c = bitrol(a, k)` returns the value of the fixed-point `fi` object, `a`, rotated left by `k` bits. `bitrol` rotates bits from the most significant bit (MSB) side into the least significant bit (LSB) side. It performs the rotate left operation on the stored integer bits of `a`. `bitrol` does not check overflow or underflow. It ignores `fimath` properties such as `RoundingMode` and `OverflowAction`.`a` and `c` have the same `fimath` and `numerictype` properties.```

## Examples

collapse all

### Rotate the Bits of a fi Object Left

Create an unsigned fixed-point `fi` object with a value of 10, word length 4, and fraction length 0.

```a = fi(10,0,4,0); disp(bin(a)) ```
```1010 ```

Rotate `a` left 1 bit.

```disp(bin(bitrol(a,1))) ```
```0101 ```

Rotate `a` left 2 bits.

```disp(bin(bitrol(a,2))) ```
```1010 ```

### Rotate Bits in a Vector Left

Create a vector of `fi` objects.

```a = fi([1,2,5,7],0,4,0) ```
```a = 1 2 5 7 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 4 FractionLength: 0 ```
```disp(bin(a)) ```
```0001 0010 0101 0111 ```

Rotate the bits in vector `a` left 1 bit.

```disp(bin(bitrol(a,1))) ```
```0010 0100 1010 1110 ```

### Rotate Bits Left Using fi to Specify Number of Bits to Rotate

Create an unsigned fixed-point `fi` object with a value 10, word length 4, and fraction length 0.

```a = fi(10,0,4,0); ```
```disp(bin(a)) ```
```1010 ```

Rotate `a` left 1 bit where `k` is a `fi` object.

```disp(bin(bitrol(a,fi(1)))) ```
```0101 ```

## Input Arguments

collapse all

### `a` — Data that you want to rotatescalar | vector | matrix | multidimensional array

Data that you want to rotate, specified as a scalar, vector, matrix, or multidimensional array of `fi` objects. `a` can be signed or unsigned.

Data Types: fixed-point `fi`

Complex Number Support: Yes

### `k` — Number of bits to rotatenon-negative, integer-valued scalar

Number of bits to rotate, specified as a non-negative integer-valued scalar `fi` object or built-in numeric type. `k` can be greater than the word length of `a`. This value is always normalized to `mod(a.WordLength,k)`.

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

Get trial now