bitandreduce

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

Описание

пример

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

пример

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

пример

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

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

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

Примеры

свернуть все

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

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

Выполните побитовую операцию AND на всем наборе бит в 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

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

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

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

Единственный элемент в выходных c со значением 1 является 4-м элементом. Это потому, что это единственный элемент a который имел только 1 между позициями 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

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

c = bitandreduce(a, 3, 1)
c=3×3 object
     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 выполняет операцию для двоичного битового представления сохраненного целого числа.

Типы данных: 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++ с помощью Coder™ MATLAB ®

.
Введенный в R2007b