exponenta event banner

pow2

Эффективное умножение с фиксированной точкой на 2K

Синтаксис

b = pow2(a,K)

Описание

b = pow2(a,K) возвращает значение a сдвинут на K биты, где K является целым числом и a и b являются fi объекты. Продукция b всегда имеет ту же длину слова и длину дроби, что и вход a.

Примечание

В арифметике с фиксированной точкой смещение на K биты эквивалентны и более эффективны, чем вычисления b = a * 2K.

Если K не является целым числом, pow2 функция округляет его до floor перед выполнением расчета.

Масштабирование a должно быть эквивалентно двоичному масштабированию только в точке; другими словами, она должна иметь степень 2 наклона и смещение 0.

a может быть реальным или сложным. Если a является сложным, pow2 работает как на реальной, так и на сложной части a.

pow2 функция подчиняется OverflowAction и RoundingMethod свойства, связанные с a. Если повиноваться RoundingMethod свойство, связанное с a не является важным, попробуйте использовать bitshift функция.

pow2 функция не поддерживает fi объекты типа данных Boolean.

Функция также не поддерживает синтаксис b = pow2(a) когда a является fi объект.

Примеры

Пример 1. Пример 1

В следующем примере: a является вещественно-значимым fi объект, и K является положительным целым числом.

pow2 функция сдвигает биты a 3 места слева, эффективно умножая a к 23.

a = fi(pi,1,16,8)
b = pow2(a,3)
binary_a = bin(a)
binary_b = bin(b)
a = 

                  3.140625

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 8

b = 

                    25.125

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 8

binary_a =

    '0000001100100100'


binary_b =

    '0001100100100000'
Пример 2. Пример 2

В следующем примере: a является вещественно-значимым fi объект, и K - отрицательное целое число.

pow2 функция сдвигает биты a 4 места справа, эффективно умножая a на 2-4.

a = fi(pi,1,16,8)
b = pow2(a,-4)
binary_a = bin(a)
binary_b = bin(b)
a = 

                  3.140625

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 8

b = 

                 0.1953125

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 8

binary_a =

    '0000001100100100'


binary_b =

    '0000000000110010'
Пример 3. Пример 3

В следующем примере показано использование pow2 с комплексом fi объект:

format long g
P = fipref('NumericTypeDisplay', 'short');
a = fi(57 - 2i, 1, 16, 8)
a = 

                         57 -                     2i
      numerictype(1,16,8)
pow2(a,2)
ans = 

               127.99609375 -                     8i
      numerictype(1,16,8)

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

Создание кода графического процессора
Создание кода CUDA ® для графических процессоров NVIDIA ® с помощью Coder™ графических процессоров

.

См. также

| | |

Представлен до R2006a