# bitcmp

побитовое дополнение

## Последовательность вызова

                y = bitcmp(x, bitnum)

## Параметры

x :

  матрица чисел двойной точности (`double`) размером `m` на `n` или гиперматрица чисел двойной точности размером `m1` на `m2` на ... на `mm` или матрица беззнаковых целых чисел (`uint8`, `uint16` или `uint32`) размером `m` на `n`. Должна содержать положительные целые значения.

bitnum :

  матрица чисел двойной точности (`double`) размером `m` на `n` или гиперматрица чисел двойной точности размером `m1` на `m2` на ... на `mm` или матрица беззнаковых целых чисел (`uint8`, `uint16` или `uint32`) размером `m` на `n`. Должна содержать положительные целые значения. Входная `bitnum` должна быть в диапазоне 1, 2, ..., `bitmax` где `bitmax` - максимальное количество битов в `x`. `bitnum` должна содержать положительные целые значения.

y :

  матрица чисел двойной точности размером `m` на `n` или гиперматрица чисел двойной точности размером `m1` на `m2` на ... на `mm` или матрица беззнаковых целых чисел (`uint8`, `uint16` или `uint32`) размером `m` на `n`.

## Описание

Для заданного беззнакового целого числа `x`, эта функция возвращает беззнаковое целое число `y`, которое является целым числом, соответствующим дополнительному коду двоичного представления `x`.

Целое число `bitnum` устанавливает максимальное количество битов.

Если количество битов в двоичном представлении `x` меньше количества `bitmax` (8, 16 или 32), то добавляются биты `'1'` к дополнительному коду для того чтобы у дополнительного кода количество битов было `bitmax` (8, 16 или 32).

## Примеры

    // 13 соответствует (1101)_2
    // Мы вводим нули в начало, чтобы получить 8-битовое число:
    // (00001101)_2
    // 8-битовый дополнительный код тогда (11110010)_2,
    // что соответствует 242
    bitcmp(13,8)
    expected = 242

    // Входной аргумент может быть беззнаковым целым числом
    bitcmp(uint8(99),8)
    expected = 156