这个例子展示了如何执行二进制点缩放FI
.
一个= fi (v,年代,w, f)
返回一个fi
与价值v
, signedness年代
,字长w
,分数长度f
.
如果年代
为真(有符号)时,结果fi中的前导位或最高有效位(MSB)总是符号位。
部分长度f
是扩展2 ^ (- f)
.
例如,创建一个有符号的8位长fi
值为0.5,比例为2^(-7):
一个= fi(7) 0.5,真的,8日
a = 0.5000 DataTypeMode:定点:二进制点缩放Signedness: Signed WordLength: 8 FractionLength: 7
分数长度或比例决定了二进制点在fi
对象。
当分数长度f
是正数且小于字长,二进制点在哪里f
位于单词内最低有效位(LSB)的左边。
例如,在有符号的3位中fi
当分数长度为1且值为-0.5时,二进制点位于LSB左侧1位。在本例中,每个位都被设置为1
它的二进制等价fi
它的二叉点是11.1
.
实际值-0.5是通过将每个比特乘以其比例因子得到的,从LSB开始,一直到带符号的MSB。
(1*2^-1) +(1*2^0) +(-1*2^1) = -0.5
storedInteger (a)
返回存储的带符号的、未缩放的整数值-1
.
(1*2^0) +(1*2^1) +(-1*2^2) = -1
bin(a) storedInteger(a) = fi(-0.5,true,3,1)
a = -0.5000 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 3 FractionLength: 1 ans = '111' ans = int8 -1
当分数长度f
是正数且大于字长,二进制点在哪里f
位置在LSB的左边和单词外面。
例如,等价于分数长度为4、值为-0.0625的带符号的3位字的二进制为._111
在这里_
在._111
表示不属于3位字的一部分的未使用位。第一个1
后_
是MSB或符号位。
实际值-0.0625的计算如下(从LSB到MSB)。
(1*2^-4) + (1*2^-3) + (-1*2^-2) = -0.0625
本(b)将返回111
在MATLAB®提示和storedInteger (b) = 1
b = fi(-0.0625,true,3,4) bin(b) storedinger (b)
b = -0.0625 DataTypeMode: Fixed-point: binary point scaling signness: Signed WordLength: 3 FractionLength: 4 ans = '111' ans = int8 -1
当分数长度f
二叉点是负的吗f
位于LSB的右边,并且在物理单词之外。
比如在c = fi(4,真的,3、2)
二进制点在LSB的右边2位111 __。
.这里最右边的两个空格是未使用的位,不是3位字的一部分。最正确的1
LSB是领头羊吗1
是符号位。
实际值-4是通过每一位乘以它的比例因子得到的2 ^ (- f)
,即(2) - 2) = 2 ^ (2)
,然后将产品添加到一起。下载188bet金宝搏
(1*2^2) +(1*2^3) +(-1*2^4) = -4
本(c)
和storedInteger (c)
还会给111
和-1
就像前面两个例子一样。
c = fi(-4,true,3,-2) bin(c) storedInteger(c)
c = -4 DataTypeMode: Fixed-point: binary point scaling signness: Signed WordLength: 3 FractionLength: -2 ans = '111' ans = int8 -1
在这个例子中,我们创建了一个有符号的3位fi
其中,分数长度是自动设置的,取决于fi
应该包含。由此产生的fi
值为6,字长为3位,分数长度为-1。这里的二进制点在LSB右边1位:011 _。
.的_
还是一个未使用的位和第一个位1
之前_
LSB。领先的1
是符号位。
现实世界的值(6)为:
(1*2^1) + (1*2^2) + (-0*2^3) = 6
本(d)
和storedInteger (d)
将会给011
和3.
分别。
d = fi(5,true,3) bin(d) storedingger (d)
d = 6 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 3 FractionLength: -1 ans = '011' ans = int8 3
这是一个交互示例,允许用户通过使用滑块移动二进制点来改变3位定点数的分数长度。分数长度可以从-3到5不等,对于有符号或无符号的数字,用户可以将3位的值更改为'0'或'1'。
3位以上的“比例因子”显示指定符号和分数长度的每位的比例或权重。的fi
代码、双精度真实值和定点属性也会显示出来。
在MATLAB提示符中输入fibinscaling来运行这个示例。
% #好< * NOPTS, * NASGU >