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 之前推出