一种浮点数重编码及解码方法、系统和装置制造方法及图纸

技术编号:35272385 阅读:18 留言:0更新日期:2022-10-19 10:46
本说明书实施例公开了一种浮点数重编码及解码方法、系统和装置,涉及信息技术领域。该重编码方法包括:获取某浮点数的第一编码数;对第一编码数中一位或多位的值进行更改,得到所述浮点数的第二编码数;第二浮点数能够基于逐字节比较的方式得到正确的比较结果。该解码方法包括:获取某浮点数的第二编码数;所述第二编码数基于前述的重编码方法获得;对第二编码数中一位或多位的值进行更改,得到所述浮点数的第一编码数。基于本说明书公开的重编码及解码方法可以通过简单的逻辑运算实现,重编码后的浮点数可以进行逐位比较,解决了浮点数无法逐位比较,进而缓解了大数据运算中浮点数比较形成的运算量负担。较形成的运算量负担。较形成的运算量负担。

【技术实现步骤摘要】
一种浮点数重编码及解码方法、系统和装置


[0001]本说明书涉及信息
,特别涉及一种浮点数重编码及解码方法、系统和装置。

技术介绍

[0002]浮点数可用以近似表示任意某个实数,具体的,其将实数表示为一个整数或定点数(或称为尾数)乘以某个基数(计算机中通常是2)的整数次幂。在计算机内,浮点数可以以包括符号位、基数(在一些应用场景下可以省去)、指数以及尾数的字节序进行编码存储。
[0003]由于浮点数在计算机内的编码方式不能够支持字符串比较或逐字节比较,然而在一些现实的应用场景中,浮点数只能用字符串或字节数组形式存储。因此,需要一种浮点数重编码及解码方法,将浮点数能够以新的编码方式表达,以实现逐字节比较就能得到浮点数正确比较结果的技术目的。

技术实现思路

[0004]本说明书实施例之一提供一种浮点数重编码方法,包括:获取某浮点数的第一编码数;所述第一编码数的编码方式约定编码数包括符号位、指数位以及尾数位,且当所述某浮点数为负数时,符号位为1,当所述浮点数为正数时,符号位为0;对第一编码数中一位或多位的值进行更改,得到所述浮点数的第二编码数;第二编码数能够基于逐字节比较的方式得到正确的比较结果。
[0005]本说明书实施例之一提供一种浮点数编码系统,包括:第一获取模块,用于获取某浮点数的第一编码数;所述第一编码数的编码方式约定编码数包括符号位、指数位以及尾数位,且当所述某浮点数为负数时,符号位为1,当所述浮点数为正数时,符号位为0;重编码模块,用于对第一编码数中一位或多位的值进行更改,得到所述浮点数的第二编码数;第二编码数能够基于逐字节比较的方式得到正确的比较结果。
[0006]本说明书实施例之一提供一种浮点数重编码装置,包括处理器及存储介质,所述存储介质存储有计算机指令,所述处理器用于执行一条或多条所述计算机指令以实现所述浮点数重编码方法。
[0007]本说明书实施例之一提供一种浮点数解码方法,包括:获取某浮点数的第二编码数;所述第二编码数基于前述的重编码方法获得;对第二编码数中一位或多位的值进行更改,得到所述浮点数的第一编码数;所述第一编码数的编码方式约定编码数包括符号位、指数位以及尾数位,且当所述某浮点数为负数时,符号位为1,当所述浮点数为正数时,符号位为0。
[0008]本说明书实施例之一提供一种浮点数解码系统,包括:第二获取模块,用于获取某浮点数的第二编码数;所述第二编码数基于前述的重编码方法获得;解码模块,用于对第二编码数中一位或多位的值进行更改,得到所述浮点数的第一编码数;所述第一编码数的编码方式约定编码数包括符号位、指数位以及尾数位,且当所述某浮点数为负数时,符号位为
1,当所述浮点数为正数时,符号位为0。
[0009]本说明书实施例之一提供一种浮点数解码装置,包括处理器及存储介质,所述存储介质存储有计算机指令,所述处理器用于执行一条或多条所述计算机指令以实现所述浮点数解码方法。
附图说明
[0010]本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
[0011]图1是按照IEEE754编码方式表示的浮点数示例;
[0012]图2是根据本说明书一些实施例所示的浮点数重编码方法的示例性流程图;
[0013]图3是根据本说明书一些实施例所示的浮点数解码方法的示例性流程图;
[0014]图4是根据本说明书一些实施例所示的浮点数重编码系统的示例性模块图;
[0015]图5是根据本说明书一些实施例所示的浮点数解码系统的示例性模块图。
具体实施方式
[0016]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
[0017]应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
[0018]如本说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
[0019]本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
[0020]在计算机领域,通常使用定点数与浮点数来表示带小数的数。
[0021]其中,定点数约定所有数据的小数点隐含在某一个固定位置上,又称为定点表示法。在计算机中的定点数通常将小数点的位置固定在数据的最高位之前,或者是固定在最低位之后。一般称前者为定点小数,后者为定点整数。也就是说,定点数表示小数时,表示的是纯小数。纯小数在计算时需要根据实际表征的实数确定是否进行比例放缩,以表征更多的实数,如非纯小数的数。
[0022]与定点数相对应,浮点数是指小数点可以根据实际情况变化的数字表示方法。在
计算机内,浮点数可以以包括符号位、基数(在一些应用场景下可以省去)、指数以及尾数的字节串进行编码存储。例如,当浮点数包括符号位S、尾数M、基数R以及指数E时,该字节串所反映的具体数字可以表示为V=(

1)
S
*M*R
E

[0023]上世纪八十年代,IEEE组织提出了浮点数在计算机内的标准表示方法(或编码方法),即IEEE754浮点数标准,这个标准统一了浮点数的表示形式,并提供了2种浮点格式。其中一种是单精度浮点数float:32位,符号位S占1bit,指数E占8bit,尾数M占23bit;另一种是双精度浮点数double:64位,符号位S占1bit,指数E占11bit,尾数M占52bit。
[0024]图1是根据本说明书一些实施例所示的IEEE754标准下浮点数编码的示意图。
[0025]如图1所示,在一个用32位信息表示的浮点数中,第31位可以为该浮点数的符号位S,第30位至第23位为该浮点数的指数位E,第22位至第0为该浮点数的尾数位M。以十进制数

25.125(D)为例,用二进制(结合十进制)科学计数法表示为

1.1001001*(2^4),进而确定相关参数S=1,M=1.001001(B),E=4(D)。进一步结合IEEE本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种浮点数重编码方法,包括:获取某浮点数的第一编码数;所述第一编码数的编码方式约定编码数包括符号位、指数位以及尾数位,且当所述某浮点数为负数时,符号位为1,当所述浮点数为正数时,符号位为0;对第一编码数中一位或多位的值进行更改,得到所述浮点数的第二编码数;第二编码数能够基于逐字节比较的方式得到正确的比较结果。2.如权利要求1所述的方法,所述对第一编码数中一位或多位的值进行更改,得到所述浮点数的第二编码数,包括:当第一编码数的符号位为0时,将第一编码数的符号位更新为1,进而得到所述第二编码数。3.如权利要求2所述的方法,所述将第一编码数的符号位更新为1,进而得到所述第二编码数,包括:将第一编码数与同维的第一运算码按位求或,进而得到所述第二编码数,其中,第一运算码的最高位的值为1,其余位的值为0。4.如权利要求1所述的方法,所述对第一编码数中一位或多位的值进行更改,得到所述浮点数的第二编码数,包括:当第一编码数的值非0且符号位为1时,将第一编码数按位取反,进而得到所述第二编码数。5.如权利要求2或4所述的方法,所述对第一编码数中一位或多位的值进行更改,得到所述浮点数的第二编码数,还包括:将第一编码数与同维的第三运算码按位求与,得到运算结果;其中,第三运算码的最高位为1,其余位为0;当运算结果为0时,确定第一编码数的符号位为0,否则确定第一编码数的符号位为1。6.如权利要求1所述的方法,所述第一编码数以及所述第二编码数按大端字节序存储;所述第一编码数的编码方式还约定编码数的最高位为符号位。7.如权利要求1所述的方法,所述第一编码数的编码方式为IEEE754编码方式。8.一种浮点数编码系统,包括:第一获取模块,用于获取某浮点数的第一编码数;所述第一编码数的编码方式约定编码数包括符号位、指数位以及尾数位,且当所述某浮点数为负数时,符号位为1,当所述浮点数为正数时,符号位为0;重编码模块,用于对第一编码数中一位或多位的值进行更改,得到所述浮点数的第二编码数;第二编码数能够基于逐字节比较的方式得到正确的比较结果。9.一种浮点数重编码装置,包括处理器及存储介质,所述存储介质存储有计算机指令,所述处理器用于执行一条或多条所述计算机指令以实现如权利要求1~7中任一项所述的方法。10.一种浮点数解码方法,包括:获...

【专利技术属性】
技术研发人员:谢振业
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1