主要内容

执行二进制小数点扩展

这个例子展示了如何执行二进制点缩放FI

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位字的一部分。最正确的1LSB是领头羊吗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)将会给0113.分别。

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

交互式FI二进制点缩放的例子

这是一个交互示例,允许用户通过使用滑块移动二进制点来改变3位定点数的分数长度。分数长度可以从-3到5不等,对于有符号或无符号的数字,用户可以将3位的值更改为'0'或'1'。

3位以上的“比例因子”显示指定符号和分数长度的每位的比例或权重。的fi代码、双精度真实值和定点属性也会显示出来。

在MATLAB提示符中输入fibinscaling来运行这个示例。

% #好< * NOPTS, * NASGU >