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
函数遵守与 a
关联的 OverflowAction
和 RoundingMethod
属性。如果遵循与 a
相关联的 RoundingMethod
属性不重要,请尝试使用 bitshift
函数。
pow2
函数不支持数据类型为 Boolean
的 fi
对象。
当 a
是 fi
对象时,该函数也不支持语法 b = pow2(a)
。
示例
例 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)
扩展功能
版本历史记录
在 R2006a 之前推出