bitandreduce

Уменьшайте последовательный срез битов к одному биту путем выполнения поразрядной операции AND

Синтаксис

c = bitandreduce(a)
c = bitandreduce(a, lidx)
c = bitandreduce(a, lidx, ridx)

Описание

пример

c = bitandreduce(a) выполняет поразрядную операцию AND на целом наборе битов во входе фиксированной точки, a, и возвращает результат как беззнаковое целое размера слова 1.

пример

c = bitandreduce(a, lidx) выполняет поразрядную операцию AND на последовательной области значений битов, запускающихся в положении lidx и заканчивающихся в LSB (бит в положении 1).

пример

c = bitandreduce(a, lidx, ridx) выполняет поразрядную операцию AND на последовательной области значений битов, запускающихся в положении lidx и заканчивающихся в положении ridx.

Аргументы bitandreduce должны удовлетворить следующее условие:

a.WordLength >= lidx >= ridx >= 1

Примеры

свернуть все

Создайте номер фиксированной точки.

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

Выполните поразрядную операцию И на целом наборе битов в a.

c = bitandreduce(a)
c = 
     0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Unsigned
            WordLength: 1
        FractionLength: 0

Поскольку биты a все не имеют значения 1, вывод имеет значение 0.

Создайте вектор фиксированной точки.

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

Выполните поразрядную операцию И на битах каждого элемента a, запускающегося в положении fi(4).

c = bitandreduce(a, fi(4))
c = 
     0     0     0     1

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Unsigned
            WordLength: 1
        FractionLength: 0

Единственный элемент в выводе c со значением 1 является 4-м элементом. Это вызвано тем, что это - единственный элемент a, который имел только 1's между положениями fi(4) и 1.

Создайте матрицу фиксированной точки.

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

Выполните поразрядную операцию И на битах каждого элемента матричного a, начинающегося в положении 3 и заканчивающегося в положении 1.

c = bitandreduce(a, 3, 1)
c = 
     1     0     0
     0     0     0
     0     0     0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Unsigned
            WordLength: 1
        FractionLength: 0

Существует только один элемент в выводе c со значением 1. Это условие происходит, потому что соответствующий элемент в a является единственным элементом с только 1's между положениями 3 и 1.

Входные параметры

свернуть все

Входной массив, заданный как скаляр, вектор, матрица или многомерный массив объектов fi.

bitandreduce поддерживает и подписанные и входные параметры без знака с произвольным масштабированием. Знак и масштабирующиеся свойства не влияют на тип результата и значение. bitandreduce выполняет операцию на дополнительном битном представлении two сохраненного целого числа.

Типы данных: фиксированная точка fi

Запустите положение области значений, заданной как скаляр встроенного типа. lidx представляет положение в области значений, самой близкой к MSB.

Типы данных: fi |single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Конечное положение области значений, заданной как скаляр встроенного типа. ridx представляет положение в области значений, самой близкой к LSB (бит в положении 1).

Типы данных: fi |single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Выходной массив, заданный как скаляр, вектор, матрица или многомерный массив фиксированной точки объекты fi. c без знака с размером слова 1.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

| | |

Представленный в R2007b