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.

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

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

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

Примеры

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

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

The 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 - отрицательное целое число.

The 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++ с помощью Coder™ MATLAB ®

.

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

.

См. также

| | |

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