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® графические процессоры с помощью GPU Coder™.

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

| | |

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