CN110515584A - 浮点计算方法及系统 - Google Patents
浮点计算方法及系统 Download PDFInfo
- Publication number
- CN110515584A CN110515584A CN201910734843.7A CN201910734843A CN110515584A CN 110515584 A CN110515584 A CN 110515584A CN 201910734843 A CN201910734843 A CN 201910734843A CN 110515584 A CN110515584 A CN 110515584A
- Authority
- CN
- China
- Prior art keywords
- double
- calculated
- precision floating
- integer
- formula
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000006243 chemical reaction Methods 0.000 claims abstract description 49
- 238000004364 calculation method Methods 0.000 claims abstract description 46
- 238000006073 displacement reaction Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 description 7
- 229910002056 binary alloy Inorganic materials 0.000 description 4
- 239000000686 essence Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000004575 stone Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/491—Computations with decimal numbers radix 12 or 20.
- G06F7/4912—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/491—Computations with decimal numbers radix 12 or 20.
- G06F7/4915—Multiplying; Dividing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种浮点计算方法及系统,通过转换倍数将待计算算式中的所有双精度浮点数转换为整数,将整数替换待计算算式中相对应的双精度浮点数进行整数计算,得到整数计算结果;将整数计算结果转换为双精度浮点数计算结果;将双精度浮点数计算结果乘以转换倍数的倒数的双精度浮点数,得到浮点计算结果。可见,本发明通过将需要进行浮点计算的双精度浮点数以转换成十进制整数,以十进制整数按照浮点计算算式进行计算,在将十进制整数转回双精度浮点数的方式,避免了以双精度浮点数的形式进行浮点计算的复杂问题,降低了系统资源的消耗,减少了浮点计算时间。
Description
技术领域
本发明涉及数据处理技术领域,具体为一种浮点计算方法及系统。
背景技术
数据在计算机和人类社会中有着不同的表达方式,通常,人类社会中的数据为十进制,在计算机内部往往需要用二进制来表达和计算。十进制的整数和二进制的整数转换是无损和便捷的,但十进制的小数转换到二进制的小数的过程往往比较复杂而且会损失精度。为了最大化保留计算结果的精度,电气和电子工程师协会(Institute of Electricaland Electronics Engineers,IEEE)定义了双精度浮点数,来表示二进制的小数。
现有的浮点计算方法,是在现场可编程门阵列(Field-Programmable GateArray,FPGA)上采用调用中央处理器或者赛灵思XILINX的IP(Intellectual Property)核功能的方式进行浮点计算,由于浮点计算复杂程度高,目前尚没有支持双精度浮点计算的硬核IP,只能通过软核IP计算,导致浮点计算耗时长,且会消耗大量的系统资源。
发明内容
本发明提供了一种浮点计算方法及系统,可以解决现有技术中由于浮点计算复杂程度高,且目前尚没有支持双精度浮点计算的硬核IP,只能通过软核IP计算,导致浮点计算耗时长,且会消耗大量的系统资源的问题。
为达到上述目的,本发明提供了如下技术方案:
一种浮点计算方法,包括:
通过转换倍数将待计算算式中的所有双精度浮点数转换为整数,其中,所述转换倍数为10的N次方,N为大于或等于1的正整数;
将所述整数替换所述待计算算式中相对应的双精度浮点数进行整数计算,得到整数计算结果;
将所述整数计算结果转换为双精度浮点数计算结果;
将所述双精度浮点数计算结果乘以所述转换倍数的倒数的双精度浮点数,得到浮点计算结果。
可选的,所述通过转换倍数将待计算算式中的所有双精度浮点数转换为整数,包括:
根据双精度浮点数的阶码位确定移位数;
将所述双精度浮点数进行变正处理后,与所述转换倍数相乘,得到扩大后的双精度浮点数;
根据所述移位数将所述扩大后的双精度浮点数进行移位,得到移位后的双精度浮点数;
将所述移位后的双精度浮点数转换为十进制数,以小数点后第一位小数进行四舍五入,得到整数。
可选的,若所述待计算算式中只包括加法运算和/或减法运算,则取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
可选的,若所述待计算算式中包括包括加法运算和/或减法运算,还包括乘法运算和/或除法运算,则将所述乘法运算的积和/或所述除法运算的商作为所述算式中加减法运算的加数、被加数、减数或被减数;并取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
可选的,若所述待计算算式中只包括乘法运算和/或除法运算,则取所述乘法运算的积和/或所述除法运算的商中小数位最多的小数位位数作为所述转换倍数中N的取值。
一种浮点计算系统,包括:
第一转换单元,用于通过转换倍数将待计算算式中的所有双精度浮点数转换为整数,其中,所述转换倍数为10的N次方,N为大于或等于1的正整数;
第一计算单元,用于将所述整数替换所述待计算算式中相对应的双精度浮点数进行整数计算,得到整数计算结果;
第二转换单元,用于将所述整数计算结果转换为双精度浮点数计算结果;
第二计算单元,用于将所述双精度浮点数计算结果乘以所述转换倍数的倒数的双精度浮点数,得到浮点计算结果。
可选的,所述第一转换单元,包括:
确定子单元,用于根据双精度浮点数的阶码位确定移位数;
扩大子单元,用于将所述双精度浮点数进行变正处理后,与所述转换倍数相乘,得到扩大后的双精度浮点数;
移位子单元,用于根据所述移位数将所述扩大后的双精度浮点数进行移位,得到移位后的双精度浮点数;
转换子单元,将所述移位后的双精度浮点数转换为十进制数,以小数点后第一位小数进行四舍五入,得到整数。
可选的,若所述待计算算式中只包括加法运算和/或减法运算,则取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
可选的,若所述待计算算式中包括包括加法运算和/或减法运算,还包括乘法运算和/或除法运算,则将所述乘法运算的积和/或所述除法运算的商作为所述算式中加减法运算的加数、被加数、减数或被减数;并取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
可选的,若所述待计算算式中只包括乘法运算和/或除法运算,则取所述乘法运算的积和/或所述除法运算的商中小数位最多的小数位位数作为所述转换倍数中N的取值。
经由上述技术方案可知,本发明公开了一种浮点计算方法及系统,通过转换倍数将待计算算式中的所有双精度浮点数转换为整数,将整数替换待计算算式中相对应的双精度浮点数进行整数计算,得到整数计算结果;将整数计算结果转换为双精度浮点数计算结果;将双精度浮点数计算结果乘以转换倍数的倒数的双精度浮点数,得到浮点计算结果。可见,本发明通过将需要进行浮点计算的双精度浮点数以转换成十进制整数,以十进制整数按照浮点计算算式进行计算,在将十进制整数转回双精度浮点数的方式,避免了以双精度浮点数的形式进行浮点计算的复杂问题,降低了系统资源的消耗,减少了浮点计算时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种浮点计算方法的流程图;
图2为本发明实施例中双精度浮点数转换成整数的流程示意图;
图3为本发明实施例公开的一种浮点计算系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
有背景技术可知,现有的浮点计算方法,是在现场可编程门阵列(Field-Programmable Gate Array,FPGA)上采用调用中央处理器或者赛灵思XILINX的IP(Intellectual Property)核功能的方式进行浮点计算,由于浮点计算复杂程度高,目前尚没有支持双精度浮点计算的硬核IP,只能通过软核IP计算,导致浮点计算耗时长,且会消耗大量的系统资源。
有鉴于此,本发明提供了一种浮点计算方法及系统,可以解决现有技术中由于浮点计算复杂程度高,且目前尚没有支持双精度浮点计算的硬核IP,只能通过软核IP计算,导致浮点计算耗时长,且会消耗大量的系统资源的问题。
如图1所示,本发明实施例公开了一种浮点计算方法,包括以下步骤:
S101、通过转换倍数将待计算算式中的所有双精度浮点数转换为十进制的整数;
在步骤S101中,所述转换倍数为10的N次方,N为大于或等于1的正整数。
需要说明的是,为了将小数状态的双精度浮点数转换为十进制整数,首先需要去除小数位,因此必须乘以10的N次方,才能在不改变每一位数的数值的情况下,将小数转换为整数,其中,N的取值方式如下:
可选的,若所述待计算算式中只包括加法运算和/或减法运算,则取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
需要说明的是,为了保证待计算算式中所有小数的双精度浮点数能够转化成整数,同时保证整数计算时的各个数位与变换前各个数位对应关系相同,取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
可选的,若所述待计算算式中包括加法运算和/或减法运算,还包括乘法运算和/或除法运算,则将所述乘法运算的积和/或所述除法运算的商作为所述算式中加减法运算的加数、被加数、减数或被减数;并取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
需要说明的是,由于乘法运算和除法运算与加减法运算不同,有可能会产生小数位变化,为了保证待计算算式中所有小数的双精度浮点数能够转化成整数,同时保证整数计算时的各个数位与变换前各个数位对应关系相同,将所述乘法运算的积和/或所述除法运算的商作为所述算式中加减法运算的加数、被加数、减数或被减数;并取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
可选的,若所述待计算算式中只包括乘法运算和/或除法运算,则取所述乘法运算的积和/或所述除法运算的商中小数位最多的小数位位数作为所述转换倍数中N的取值。
需要说明的是,由于乘法运算和除法运算与加减法运算不同,有可能会产生小数位变化,为了保证待计算算式中所有小数的双精度浮点数能够转化成整数,同时保证整数计算时的各个数位与变换前各个数位对应关系相同,取所述乘法运算的积和/或所述除法运算的商中小数位最多的小数位位数作为所述转换倍数中N的取值。
可选的,所述通过转换倍数将待计算算式中的所有双精度浮点数转换为整数,包括:
根据双精度浮点数的阶码位确定移位数。
需要说明的是,双精度浮点数是计算机使用的一种数据类型,使用64位(占用8个字节)来存储一个浮点数,二进制双精度浮点数转换成十进制数的公式为:
其中,i表示小数位的位数,Mi表示相应位的值,S为符号位,占用双精度浮点数64位中的1位,编号63,S取值为0时表示正数,S取值为1时标识负数,E为阶码位,占用双精度浮点数64位中的11位,编号63至52,E可以在1到2046之间取值,M为小数位,占用双精度浮点数64位中的52位,编号51至0,M可以取任意值。
需要说明的是,阶码位决定二进制双精度浮点数转换成十进制数后小数点的位置,由阶码位确定位移数,在转换时,从53位形式的小数的末位开始,按照位移数进行移动,以最终移动到的位数为准,在转换成十进制数时,将十进制数分成整数和小数两部分。
将所述双精度浮点数进行变正处理后,与所述转换倍数相乘,得到扩大后的双精度浮点数。
需要说明的是,与传统二进制双精度浮点数转换成十进制数过程不同的是,为了最终转换得到的十进制数是整数,通过在双精度浮点数进行变正处理后,与所述转换倍数相乘的方式,将小数位扩大,大于原有的53位小数,因此在进行后续移位操作时,原有的小数位就会有更多的位数在移位数范围之外,最终结果就是减少了转换后的十进制数的小数位位数。
根据所述移位数将所述扩大后的双精度浮点数进行移位,得到移位后的双精度浮点数。
将所述移位后的双精度浮点数转换为十进制数,以小数点后第一位小数进行四舍五入,得到整数。
需要说明的是,在双精度浮点数转换得到的十进制数时,存在可以直接得到整数的情况,此时就不需要再进行四舍五入了。
S102、将所述整数替换所述待计算算式中相对应的双精度浮点数进行整数计算,得到整数计算结果。
需要说明的是,虽然把双精度浮点数转换为整数,但浮点计算本身的计算过程是不变的,因此将得到的整数按照浮点计算的待计算算式进行计算,得到整数计算结果。
S103、将所述整数计算结果转换为双精度浮点数计算结果。
需要说明的是,由于整数与双精度浮点数之间的转换的是无损的,可以直接采用通用的十进制数转二进制双精度浮点数的方式将整数转换为双精度浮点数。
S104、将所述双精度浮点数计算结果乘以所述转换倍数的倒数的双精度浮点数,得到浮点计算结果。
需要说明的是,由于在将双精度浮点数转化为整数时进行了扩大倍数的操作,因此需要将双精度浮点数计算结果缩小相同的倍数才是正确的浮点计算结果。
为方便理解,以待计算算式(0.98*100)+0.05为例,以本发明实施例的浮点计算方法进行计算,计算数据如表1所示:
表1
其中,为了方便验证计算结果,表中直接将待计算算式的结果给出。
从表1中可以看到,待计算算式中小数位最多的小数位位数为2,因此将2作为所述转换倍数中N的取值,可以得到10的2次方为100,也就是扩大100倍,然后将双精度浮点数转换成整数,,转换流程如图2所示,最终得到整数98、100和5,然后将这三个整数按照待计算算式进行计算,得到整数结果9805,继而将整数结果转换为双精度浮点数结果40C3268000000000,然后将双精度浮点数结果乘以转换倍数的倒数的双精度浮点数,也就是100分之1,即0.01的双精度浮点数3F847AE147AE147B,最终得到浮点计算结果4058833333333333。
本实施例公开的浮点计算方法,通过转换倍数将待计算算式中的所有双精度浮点数转换为整数,将整数替换待计算算式中相对应的双精度浮点数进行整数计算,得到整数计算结果;将整数计算结果转换为双精度浮点数计算结果;将双精度浮点数计算结果乘以转换倍数的倒数的双精度浮点数,得到浮点计算结果。可见,本发明通过将需要进行浮点计算的双精度浮点数以转换成十进制整数,以十进制整数按照浮点计算算式进行计算,在将十进制整数转回双精度浮点数的方式,避免了以双精度浮点数的形式进行浮点计算的复杂问题,降低了系统资源的消耗,减少了浮点计算时间。
基于上述本发明实施例公开的浮点计算方法,图3具体公开了应用该浮点计算方法的浮点计算系统。
如图3所示,本发明另一实施例公开了一种浮点计算系统,该系统包括:
第一转换单元301,用于通过转换倍数将待计算算式中的所有双精度浮点数转换为整数,其中,所述转换倍数为10的N次方,N为大于或等于1的正整数。
第一计算单元302,用于将所述整数替换所述待计算算式中相对应的双精度浮点数进行整数计算,得到整数计算结果。
第二转换单元303,用于将所述整数计算结果转换为双精度浮点数计算结果;
第二计算单元304,用于将所述双精度浮点数计算结果乘以所述转换倍数的倒数的双精度浮点数,得到浮点计算结果。
可选的,所述第一转换单元301,包括:
确定子单元,用于根据双精度浮点数的阶码位确定移位数。
扩大子单元,用于将所述双精度浮点数进行变正处理后,与所述转换倍数相乘,得到扩大后的双精度浮点数。
移位子单元,用于根据所述移位数将所述扩大后的双精度浮点数进行移位,得到移位后的双精度浮点数。
转换子单元,将所述移位后的双精度浮点数转换为十进制数,以小数点后第一位小数进行四舍五入,得到整数。
可选的,若所述待计算算式中只包括加法运算和/或减法运算,则取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
可选的,若所述待计算算式中包括包括加法运算和/或减法运算,还包括乘法运算和/或除法运算,则将所述乘法运算的积和/或所述除法运算的商作为所述算式中加减法运算的加数、被加数、减数或被减数;并取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
可选的,若所述待计算算式中只包括乘法运算和/或除法运算,则取所述乘法运算的积和/或所述除法运算的商中小数位最多的小数位位数作为所述转换倍数中N的取值。
以上本发明实施例公开的浮点计算系统中的第一转换单元301、第一计算单元302、第二转换单元303和第二计算单元304的具体工作过程,可参见本发明上述实施例公开的浮点计算方法中的对应内容,这里不再进行赘述。
本实施例公开的浮点计算系统,通过转换倍数将待计算算式中的所有双精度浮点数转换为整数,将整数替换待计算算式中相对应的双精度浮点数进行整数计算,得到整数计算结果;将整数计算结果转换为双精度浮点数计算结果;将双精度浮点数计算结果乘以转换倍数的倒数的双精度浮点数,得到浮点计算结果。可见,本发明通过将需要进行浮点计算的双精度浮点数以转换成十进制整数,以十进制整数按照浮点计算算式进行计算,在将十进制整数转回双精度浮点数的方式,避免了以双精度浮点数的形式进行浮点计算的复杂问题,降低了系统资源的消耗,减少了浮点计算时间。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种浮点计算方法,其特征在于,包括:
通过转换倍数将待计算算式中的所有双精度浮点数转换为整数,其中,所述转换倍数为10的N次方,N为大于或等于1的正整数;
将所述整数替换所述待计算算式中相对应的双精度浮点数进行整数计算,得到整数计算结果;
将所述整数计算结果转换为双精度浮点数计算结果;
将所述双精度浮点数计算结果乘以所述转换倍数的倒数的双精度浮点数,得到浮点计算结果。
2.根据权利要求1所述的浮点计算方法,其特征在于,所述通过转换倍数将待计算算式中的所有双精度浮点数转换为整数,包括:
根据双精度浮点数的阶码位确定移位数;
将所述双精度浮点数进行变正处理后,与所述转换倍数相乘,得到扩大后的双精度浮点数;
根据所述移位数将所述扩大后的双精度浮点数进行移位,得到移位后的双精度浮点数;
将所述移位后的双精度浮点数转换为十进制数,以小数点后第一位小数进行四舍五入,得到整数。
3.根据权利要求1所述的浮点计算方法,其特征在于,若所述待计算算式中只包括加法运算和/或减法运算,则取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
4.根据权利要求1所述的浮点计算方法,其特征在于,若所述待计算算式中包括包括加法运算和/或减法运算,还包括乘法运算和/或除法运算,则将所述乘法运算的积和/或所述除法运算的商作为所述算式中加减法运算的加数、被加数、减数或被减数;并取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
5.根据权利要求1所述的浮点计算方法,其特征在于,若所述待计算算式中只包括乘法运算和/或除法运算,则取所述乘法运算的积和/或所述除法运算的商中小数位最多的小数位位数作为所述转换倍数中N的取值。
6.一种浮点计算系统,其特征在于,包括:
第一转换单元,用于通过转换倍数将待计算算式中的所有双精度浮点数转换为整数,其中,所述转换倍数为10的N次方,N为大于或等于1的正整数;
第一计算单元,用于将所述整数替换所述待计算算式中相对应的双精度浮点数进行整数计算,得到整数计算结果;
第二转换单元,用于将所述整数计算结果转换为双精度浮点数计算结果;
第二计算单元,用于将所述双精度浮点数计算结果乘以所述转换倍数的倒数的双精度浮点数,得到浮点计算结果。
7.根据权利要求6所述的浮点计算系统,其特征在于,所述第一转换单元,包括:
确定子单元,用于根据双精度浮点数的阶码位确定移位数;
扩大子单元,用于将所述双精度浮点数进行变正处理后,与所述转换倍数相乘,得到扩大后的双精度浮点数;
移位子单元,用于根据所述移位数将所述扩大后的双精度浮点数进行移位,得到移位后的双精度浮点数;
转换子单元,将所述移位后的双精度浮点数转换为十进制数,以小数点后第一位小数进行四舍五入,得到整数。
8.根据权利要求6所述的浮点计算系统,其特征在于,若所述待计算算式中只包括加法运算和/或减法运算,则取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
9.根据权利要求6所述的浮点计算系统,其特征在于,若所述待计算算式中包括包括加法运算和/或减法运算,还包括乘法运算和/或除法运算,则将所述乘法运算的积和/或所述除法运算的商作为所述算式中加减法运算的加数、被加数、减数或被减数;并取所述待计算算式中加减法运算的加数与被加数和/或减数与被减数中小数位最多的小数位位数作为所述转换倍数中N的取值。
10.根据权利要求6所述的浮点计算系统,其特征在于,若所述待计算算式中只包括乘法运算和/或除法运算,则取所述乘法运算的积和/或所述除法运算的商中小数位最多的小数位位数作为所述转换倍数中N的取值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910734843.7A CN110515584A (zh) | 2019-08-09 | 2019-08-09 | 浮点计算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910734843.7A CN110515584A (zh) | 2019-08-09 | 2019-08-09 | 浮点计算方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110515584A true CN110515584A (zh) | 2019-11-29 |
Family
ID=68624639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910734843.7A Pending CN110515584A (zh) | 2019-08-09 | 2019-08-09 | 浮点计算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110515584A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112230882A (zh) * | 2020-10-28 | 2021-01-15 | 海光信息技术股份有限公司 | 浮点数处理装置、浮点数加法装置及浮点数处理方法 |
CN113032326A (zh) * | 2021-03-25 | 2021-06-25 | 盛立安元科技(杭州)股份有限公司 | 一种用于fpga的数据类型转换装置、方法、设备及存储介质 |
CN113778373A (zh) * | 2021-09-16 | 2021-12-10 | 卡斯柯信号有限公司 | 一种安全浮点运算方法和系统 |
CN116594589A (zh) * | 2019-12-31 | 2023-08-15 | 华为技术有限公司 | 浮点数乘法计算的方法、装置和算术逻辑单元 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087609A1 (en) * | 2000-12-27 | 2002-07-04 | Ronen Zohar | System and method to efficiently round real numbers |
US20020184282A1 (en) * | 2001-03-01 | 2002-12-05 | Yuval Gideon A. | System and method for using native floating point microprocessor instructions to manipulate 16-bit floating point data representations |
CN1609783A (zh) * | 2003-10-21 | 2005-04-27 | 无敌科技股份有限公司 | 影像浮点数据转换运算方法 |
US20110173421A1 (en) * | 2010-01-08 | 2011-07-14 | International Business Machines Corporation | Multi-input and binary reproducible, high bandwidth floating point adder in a collective network |
US20130262539A1 (en) * | 2012-03-30 | 2013-10-03 | Samplify Systems, Inc. | Conversion and compression of floating-point and integer data |
CN105094744A (zh) * | 2015-07-28 | 2015-11-25 | 成都腾悦科技有限公司 | 一种可变浮点数据微处理器 |
-
2019
- 2019-08-09 CN CN201910734843.7A patent/CN110515584A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087609A1 (en) * | 2000-12-27 | 2002-07-04 | Ronen Zohar | System and method to efficiently round real numbers |
US20020184282A1 (en) * | 2001-03-01 | 2002-12-05 | Yuval Gideon A. | System and method for using native floating point microprocessor instructions to manipulate 16-bit floating point data representations |
CN1609783A (zh) * | 2003-10-21 | 2005-04-27 | 无敌科技股份有限公司 | 影像浮点数据转换运算方法 |
US20110173421A1 (en) * | 2010-01-08 | 2011-07-14 | International Business Machines Corporation | Multi-input and binary reproducible, high bandwidth floating point adder in a collective network |
US20130262539A1 (en) * | 2012-03-30 | 2013-10-03 | Samplify Systems, Inc. | Conversion and compression of floating-point and integer data |
CN105094744A (zh) * | 2015-07-28 | 2015-11-25 | 成都腾悦科技有限公司 | 一种可变浮点数据微处理器 |
Non-Patent Citations (3)
Title |
---|
MR无愧于心: "解决js浮点数运算不准确的函数", 《HTTPS://WWW.JIANSHU.COM/P/B0D909A6139F》 * |
THE INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS: "《IEEE Standard for Binary Floating-Point Arithmetic》", 21 March 1985 * |
WI100SH: "浮点型转换整型的快速方法介绍--不错", 《HTTPS://WWW.CNBLOGS.COM/WI100SH/P/4896256.HTML》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116594589A (zh) * | 2019-12-31 | 2023-08-15 | 华为技术有限公司 | 浮点数乘法计算的方法、装置和算术逻辑单元 |
CN116594589B (zh) * | 2019-12-31 | 2024-03-26 | 华为技术有限公司 | 浮点数乘法计算的方法、装置和算术逻辑单元 |
CN112230882A (zh) * | 2020-10-28 | 2021-01-15 | 海光信息技术股份有限公司 | 浮点数处理装置、浮点数加法装置及浮点数处理方法 |
CN113032326A (zh) * | 2021-03-25 | 2021-06-25 | 盛立安元科技(杭州)股份有限公司 | 一种用于fpga的数据类型转换装置、方法、设备及存储介质 |
CN113778373A (zh) * | 2021-09-16 | 2021-12-10 | 卡斯柯信号有限公司 | 一种安全浮点运算方法和系统 |
CN113778373B (zh) * | 2021-09-16 | 2023-10-31 | 卡斯柯信号有限公司 | 一种安全浮点运算方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515584A (zh) | 浮点计算方法及系统 | |
Mohan et al. | Residue Number Systems | |
WO2021147395A1 (zh) | 算数逻辑单元、浮点数乘法计算的方法及设备 | |
JP5456766B2 (ja) | プログラム可能なプロセッサにおける随意選択的なガロア域計算の実行 | |
CN107305484B (zh) | 一种非线性函数运算装置及方法 | |
MX2008010873A (es) | Procesador de punto de flotacion con requerimientos de potencia reducidos para suprecision seleccionable. | |
CN110515589B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN107766031B (zh) | 分段式除法器、分段式除法运算方法、以及电子设备 | |
Lang et al. | A radix-10 digit-recurrence division unit: algorithm and architecture | |
EP3769208B1 (en) | Stochastic rounding logic | |
Hormigo et al. | Measuring improvement when using HUB formats to implement floating-point systems under round-to-nearest | |
KR20040092376A (ko) | 몽고메리 모듈러 곱셈기 및 캐리 저장 가산을 이용한몽고메리 모듈러 곱셈 방법 | |
JP4273071B2 (ja) | 除算・開平演算器 | |
Bruguera | Radix-64 floating-point divider | |
US9519459B2 (en) | High efficiency computer floating point multiplier unit | |
KR20170138143A (ko) | 단일 곱셈-누산 방법 및 장치 | |
CN113126954A (zh) | 浮点数乘法计算的方法、装置和算术逻辑单元 | |
Daud et al. | Hybrid modified booth encoded algorithm-carry save adder fast multiplier | |
CN113672196B (zh) | 一种基于单数字信号处理单元的双乘法计算装置和方法 | |
CN115827555A (zh) | 数据处理方法、计算机设备、存储介质和乘法器结构 | |
Sutter et al. | Comparative study of SRT-dividers in FPGA | |
Parashar et al. | Fast combinational architecture for a vedic divider | |
WO2023004799A1 (zh) | 电子设备及神经网络量化方法 | |
Gonzalez-Navarro et al. | A binary integer decimal-based multiplier for decimal floating-point arithmetic | |
Chang et al. | Fixed-point computing element design for transcendental functions and primary operations in speech processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191129 |