位置:51电子网 » 技术资料 » 初学园地

计算机算法之定点数

发布时间:2008/12/17 0:00:00 访问次数:927

  表1给出5种不同整型数表达式的3位编码。

  表1 有符号二进制数的常规编码

  1.无符号整数(unsigned integer)

  设x是一个ⅳ位无符号二进制数,则其范围是[0,2n - 1],表达式如下:

  其中扬是x的第n位二进制数字(也就是xn∈[0,1])。数字xo称作最低有效位(least significantbit,lsb),具有相当于个位的权重。数字xn-1)就是最高有效位(most significant bit,msb),具有相当于2n-1的权重。

  2.有符号数值(signed-magnitude,sm)

  在有符号数字表示法中,数字和符号是单独表示的。第一位xn-1(即msb)代表符号,余下的n-1位代表数字,表达式如下:

  这一表达式的范围是[-(2n-1-1;),2n-1-1],有符号数字表示法的优点就是简化了溢出的禁止,但缺点就是加法不得不根据哪一个操作数更大而分开来运算。

  3.二进制补码two’s complement,2c)

  有符号整数的n位二进制补码表达式如下:

  其表达式的范围是[-2n-1,2n-1-1]。二进制补码表示法是目前dsp领域内最为流行的有符号数字表示法。这是因为它使得累加多个有符号数值成为可能,而且最终结果是在n位范围内,我们可以忽略任何算术上的溢出。例如我们计算两个3位数,其过程如下:

  溢出可以忽略。所有的计算都是取模2n。这样就有可能出现不能够正确表示中间值的情形,但只要最终值有效,结果就是正确的。例如计算3位的数字2+2-3,会得到一个中间值010+010=1002c,也就是-410,但是结果100 - 011=100+101=0012c,是正确的。

  二进制补码还可以用来实现模2n算法,而且不需要在算法中作任何改动。

  4.二进制反码(也称作1的补码,one’s complement,1c)

  n在二进制反码数字表示法可以整数范围是[-(2n-1+1),2n-1-1]。在二进制反码中,正整数和负整数除了符号位之外具有相同的表示方法。也就是说,事实上0需要额外的表达式。二进制反码中有符号标准表达式如下:


  例如,在表1第三列中给书的3和-3的3位二进制反码表达式。
  请看下面的简单示例。

  在二进制反码中需要“进位回绕(carry wrap-around)”加法。在最高有效位与最低有效位相加得到正确结果时,就会出现进位。

  尽管如此,这种数字表示法还是能够有效地实现模2n-1运算,而且不需要校正。因此二进制反码在实现特定的dsp算法时,还是有其特殊价值的。

  5.减1表示法(diminished one system,d1)

  减1表示法是一种有偏移的数字表示法。正整数与二进制补码相比减少了1。n+1位d1数值范围是[-2n-1,2n-1-1](不含0)。d1数字表示法的编码规则定义如下:

  从下面两个d1数相加可以看到,对于d1而言还必须计算补码和颠倒进位的加法。

  数不需要在算法上作任何改动就能够有效地实现模2n+1运算。

  6.偏移数制(bias system)

  偏移数制对所有数都有一个偏移量。偏移的值通常位于二进制数范围的中间,也就是bias=2n-1-1。例如:对于3位的二进制数,偏移量应该是23-1-1=3。n位偏移数的范围是[-2n-1-1,2n-1]。0就编码成偏移量。偏移数制的编码规则定义如下:

  我们可以看到,对于每次加法,都需要减掉偏移量,而对于每次减法,都需要加上偏移量。

  欢迎转载,信息来自维库电子市场网(www.dzsc.com)



  表1给出5种不同整型数表达式的3位编码。

  表1 有符号二进制数的常规编码

  1.无符号整数(unsigned integer)

  设x是一个ⅳ位无符号二进制数,则其范围是[0,2n - 1],表达式如下:

  其中扬是x的第n位二进制数字(也就是xn∈[0,1])。数字xo称作最低有效位(least significantbit,lsb),具有相当于个位的权重。数字xn-1)就是最高有效位(most significant bit,msb),具有相当于2n-1的权重。

  2.有符号数值(signed-magnitude,sm)

  在有符号数字表示法中,数字和符号是单独表示的。第一位xn-1(即msb)代表符号,余下的n-1位代表数字,表达式如下:

  这一表达式的范围是[-(2n-1-1;),2n-1-1],有符号数字表示法的优点就是简化了溢出的禁止,但缺点就是加法不得不根据哪一个操作数更大而分开来运算。

  3.二进制补码two’s complement,2c)

  有符号整数的n位二进制补码表达式如下:

  其表达式的范围是[-2n-1,2n-1-1]。二进制补码表示法是目前dsp领域内最为流行的有符号数字表示法。这是因为它使得累加多个有符号数值成为可能,而且最终结果是在n位范围内,我们可以忽略任何算术上的溢出。例如我们计算两个3位数,其过程如下:

  溢出可以忽略。所有的计算都是取模2n。这样就有可能出现不能够正确表示中间值的情形,但只要最终值有效,结果就是正确的。例如计算3位的数字2+2-3,会得到一个中间值010+010=1002c,也就是-410,但是结果100 - 011=100+101=0012c,是正确的。

  二进制补码还可以用来实现模2n算法,而且不需要在算法中作任何改动。

  4.二进制反码(也称作1的补码,one’s complement,1c)

  n在二进制反码数字表示法可以整数范围是[-(2n-1+1),2n-1-1]。在二进制反码中,正整数和负整数除了符号位之外具有相同的表示方法。也就是说,事实上0需要额外的表达式。二进制反码中有符号标准表达式如下:


  例如,在表1第三列中给书的3和-3的3位二进制反码表达式。
  请看下面的简单示例。

  在二进制反码中需要“进位回绕(carry wrap-around)”加法。在最高有效位与最低有效位相加得到正确结果时,就会出现进位。

  尽管如此,这种数字表示法还是能够有效地实现模2n-1运算,而且不需要校正。因此二进制反码在实现特定的dsp算法时,还是有其特殊价值的。

  5.减1表示法(diminished one system,d1)

  减1表示法是一种有偏移的数字表示法。正整数与二进制补码相比减少了1。n+1位d1数值范围是[-2n-1,2n-1-1](不含0)。d1数字表示法的编码规则定义如下:

  从下面两个d1数相加可以看到,对于d1而言还必须计算补码和颠倒进位的加法。

  数不需要在算法上作任何改动就能够有效地实现模2n+1运算。

  6.偏移数制(bias system)

  偏移数制对所有数都有一个偏移量。偏移的值通常位于二进制数范围的中间,也就是bias=2n-1-1。例如:对于3位的二进制数,偏移量应该是23-1-1=3。n位偏移数的范围是[-2n-1-1,2n-1]。0就编码成偏移量。偏移数制的编码规则定义如下:

  我们可以看到,对于每次加法,都需要减掉偏移量,而对于每次减法,都需要加上偏移量。

  欢迎转载,信息来自维库电子市场网(www.dzsc.com)



相关IC型号

热门点击

 

推荐技术资料

FU-19推挽功放制作
    FU-19是国产大功率发射双四极功率电二管,EPL20... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!