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.

Примеры

 Пример 4. Пример 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)

MATLAB® возвращается:

a =
 
    3.1406

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

b =
 
   25.1250

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

binary_a =

0000001100100100


binary_b =

0001100100100000
 Пример 5. Пример 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)

MATLAB возвращается:

a =
 
    3.1406

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

b =
 
    0.1953

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

binary_a =

0000001100100100


binary_b =

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

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

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

a =
                          57 -                     2i
      s16,8

pow2(a, 2) 

ans =
               127.99609375 -                     8i
      s16,8

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

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

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

| | |

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