System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于定点CPU的高精度浮点数计算方法及系统技术方案_技高网

基于定点CPU的高精度浮点数计算方法及系统技术方案

技术编号:40008135 阅读:8 留言:0更新日期:2024-01-16 14:50
本发明专利技术公开了基于定点CPU的高精度浮点数计算方法及系统,方法包括:根据浮点数转换定点数形式规则,将浮点数转换为定点数形式,规则包括基于浮点数的正负情况、左移位数及右移位数共同确定定点数;依据确定的定点数,设定两个定点数的低十六位与高十六位的计算规则,将浮点数相乘转换为定点数相乘,得到定点数S;依据低十六位与高十六位数据移位判定规则,对定点数S进行数据移位处理,并得到乘积结果;依据乘积结果类型,控制乘积为定点数或浮点数,若为浮点数则转化为定点数。本发明专利技术方案能够提高定点CPU处理浮点数的效率,实现定点CPU的浮点数乘法运算,提高运算精度,保障浮点数乘法计算的可靠性。

【技术实现步骤摘要】

本专利技术涉及电力存储器优化,尤其涉及基于定点cpu的高精度浮点数计算方法及系统。


技术介绍

1、根据数据处理和表示的方式,继电保护装置可以采用定点cpu和浮点cpu,浮点cpu优点表示范围广,如三十二位定点cpu,定点整数和定点小数都可以是十六位,而三十二位浮点cpu是可以浮动的,理论上可以完全使用三十二位。

2、但是,浮点cpu也有一些缺点,如浮点表示时,有多个部分都需要参与计算(比如尾数、阶码),所以功耗会比定点cpu高;另外,浮点cpu的价格要比定点cpu高,因而一些保护装置也会采用定点cpu。定点cpu功耗低,电路简单,但是表示数的范围窄,在处理浮点数时,效率不是很高。因此亟需一种提高定点cpu处理浮点数的效率方法。


技术实现思路

1、鉴于上述现有存在的问题,提出了本专利技术。因此,本专利技术提供了基于定点cpu的高精度浮点数计算方法及系统解决在目前保护装置也会采用定点cpu时表示数的范围窄,在处理浮点数时,效率不是很高的问题。

2、为解决上述技术问题,本专利技术提供如下技术方案:

3、第一方面,本专利技术提供了基于定点cpu的高精度浮点数计算方法,包括:

4、根据浮点数转换定点数形式规则,将浮点数转换为定点数形式,所述规则包括基于浮点数的正负情况、左移位数及右移位数共同确定定点数;

5、依据确定的定点数,设定两个定点数的低十六位与高十六位的计算规则,将浮点数相乘转换为定点数相乘,得到定点数s;

6、依据低十六位与高十六位数据移位判定规则,对定点数s进行数据移位处理,并得到乘积结果;

7、依据乘积结果类型,控制乘积为定点数或浮点数,若为浮点数则转化为定点数。

8、作为本专利技术所述的基于定点cpu的高精度浮点数计算方法的一种优选方案,其中:所述浮点数转换定点数形式规则还包括,

9、将第一浮点数a进行位移m位得到a1并将a1、m组合转换为三十二位定点数p,将a1置于p的低十六位,移位数m置于p的高十六位;

10、将第二浮点数b进行位移n位得到b1,并将b1、n组合转换为三十二位定点数q,将b1置于q的低十六位,移位数n置于q的高十六位。

11、作为本专利技术所述的基于定点cpu的高精度浮点数计算方法的一种优选方案,其中:所述规则基于浮点数的正负情况、左移位数及右移位数共同确定定点数,具体包括,如果第一浮点数a为正数,左移位数m1应满足a1=a*2m1≤32767,且m1为最大值,则三十二位定点数p为:

12、p=(u int 16)a1+((u int 16)m1)<<16

13、如果第一浮点数a为负数,左移位数m1应满足a1=abs(a)*2m1≤32767,且m1为最大值,则三十二位定点数p为:

14、p=(u int 16)neg(a1)+((u int 16)m1)<<16

15、所述第二浮点数b左移n1规则相同。

16、作为本专利技术所述的基于定点cpu的高精度浮点数计算方法的一种优选方案,其中:还包括,如果第一浮点数a为正数,且a>32767,右移位数m2应满足a1=a/2m2≤32767,且m2为最小值,则三十二位定点数p为:

17、p=(u int 16)a1+((u int 16)neg(m2))<<16

18、如果第一浮点数a为负数,且abs(a)>32767,右移位数m2应满足a1=abs(a)/2m2≤32767,且m2为最小值,则三十二位定点数p为:

19、p=(u int 16)neg(a1)+((u int 16)neg(m2))<<16

20、如果第一浮点数a已经是三十二位定点数形式,其低十六位数为a1,高十六位数为l,且a1>32767,右移位数m2应满足a1=a/2m2≤32767,且m2为最小值,则三十二位定点数p为:

21、若l≥m2,则p=(u int 16)a1+((u int 16)(l-m2))<<16;

22、若l<m2,则p=(u int 16)a1+((u int 16)neg(l-m2))<<16;

23、如果第一浮点数a已经是三十二位定点数形式,其低十六位数为a1,高十六位数为l,a1为负数且abs(a1)>32767,右移位数m2应满足a1=a/2m2≤32767,且m2为最小值,则三十二位定点数p为:

24、若l≥m2,则p=(uint16)neg(a1)+((uint16)(l-m2))<<16;

25、若l<m2,则p=(uint16)neg(a1)+((uint16)neg(l-m2))<<16;

26、式中:uint16()表示取十六位无符号定点数;abs()表示取绝对值;neg()表示取补码;″<<″表示左移;

27、所述第二浮点数b右移位数n2规则相同。

28、作为本专利技术所述的基于定点cpu的高精度浮点数计算方法的一种优选方案,其中:所述设定两个定点数的低十六位与高十六位的计算规则,将浮点数相乘转换为定点数相乘,得到定点数s,具体为,

29、两个定点数的低十六位相乘得到乘积,高十六位相加或相减,控制移位方向和移位位数。

30、作为本专利技术所述的基于定点cpu的高精度浮点数计算方法的一种优选方案,其中:依据低十六位与高十六位数据移位判定规则,对定点数s进行数据移位处理,并得到乘积结果,所述判定规则为:

31、m=(u int 8)(p>>16)

32、n=(u int 8)(q>>16)

33、其中,m表示定点数p的位移数;n表示定点数q的位移数;

34、若m、n的最高位均为0,则:

35、k=(u int 8)(m+n)

36、其中,k表示定点数s的位移数;

37、若m、n的最高位均为1,则:

38、k=(u int 8)((int 8)m+(int 8)n)

39、若m的最高位均为0,n的最高位均为1,则:

40、k=(u int 8)(m+(int 8)n)

41、若m的最高位均为1,n的最高位均为0,则:

42、k=(u int 8)((int 8)m+n)

43、式中:u int 8表示取八位无符号定点数;int 8()表示取八位带符号定点数;″>>″表示右移。

44、如果k的最高位为0,需要将三十二位定点数s右移k位得到数t;

45、如果k的最高位为1,需要将三十二位定点数s左移neg(k)位得到数t。

46、作为本专利技术所述的基于定点cpu的高精度浮点数计算方法的一种优选方案,其中:依据乘积结果类型,控制乘积为定点数或浮点数,若为浮点数则转化为定点数,具体包括,

47、若乘积是最终结果,则t为三十二本文档来自技高网...

【技术保护点】

1.基于定点CPU的高精度浮点数计算方法,其特征在于,包括:

2.如权利要求1所述的基于定点CPU的高精度浮点数计算方法,其特征在于,所述浮点数转换定点数形式规则还包括,

3.如权利要求1或2所述的基于定点CPU的高精度浮点数计算方法,其特征在于,所述规则基于浮点数的正负情况、左移位数及右移位数共同确定定点数,具体包括,如果第一浮点数A为正数,左移位数m1应满足A1=A*2m1≤32767,且m1为最大值,则三十二位定点数P为:

4.如权利要求3所述的基于定点CPU的高精度浮点数计算方法,其特征在于,还包括,如果第一浮点数A为正数,且A>32767,右移位数m2应满足A1=A/2m2≤32767,且m2为最小值,则三十二位定点数P为:

5.如权利要求4所述的基于定点CPU的高精度浮点数计算方法,其特征在于,所述设定两个定点数的低十六位与高十六位的计算规则,将浮点数相乘转换为定点数相乘,得到定点数S,具体为,

6.如权利要求5所述的基于定点CPU的高精度浮点数计算方法,其特征在于,依据低十六位与高十六位数据移位判定规则,对定点数S进行数据移位处理,并得到乘积结果,所述判定规则为:

7.如权利要求1或6所述的基于定点CPU的高精度浮点数计算方法,其特征在于,依据乘积结果类型,控制乘积为定点数或浮点数,若为浮点数则转化为定点数,具体包括,

8.基于定点CPU的高精度浮点数计算的系统,其特征在于,包括,

9.一种电子设备,包括:

10.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至7任意一项所述基于定点CPU的高精度浮点数计算方法的步骤。

...

【技术特征摘要】

1.基于定点cpu的高精度浮点数计算方法,其特征在于,包括:

2.如权利要求1所述的基于定点cpu的高精度浮点数计算方法,其特征在于,所述浮点数转换定点数形式规则还包括,

3.如权利要求1或2所述的基于定点cpu的高精度浮点数计算方法,其特征在于,所述规则基于浮点数的正负情况、左移位数及右移位数共同确定定点数,具体包括,如果第一浮点数a为正数,左移位数m1应满足a1=a*2m1≤32767,且m1为最大值,则三十二位定点数p为:

4.如权利要求3所述的基于定点cpu的高精度浮点数计算方法,其特征在于,还包括,如果第一浮点数a为正数,且a>32767,右移位数m2应满足a1=a/2m2≤32767,且m2为最小值,则三十二位定点数p为:

5.如权利要求4所述的基于定点cpu的高精度浮点数计算方法,其特...

【专利技术属性】
技术研发人员:刘小波丁俊健赵斌牟瑛琦罗铭刘万斌
申请(专利权)人:南京国电南自维美德自动化有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1