CN117632854A - 数据处理方法、装置以及设备 - Google Patents
数据处理方法、装置以及设备 Download PDFInfo
- Publication number
- CN117632854A CN117632854A CN202311620574.4A CN202311620574A CN117632854A CN 117632854 A CN117632854 A CN 117632854A CN 202311620574 A CN202311620574 A CN 202311620574A CN 117632854 A CN117632854 A CN 117632854A
- Authority
- CN
- China
- Prior art keywords
- numbers
- data
- bcd
- shift
- group
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 34
- 238000006243 chemical reaction Methods 0.000 claims abstract description 166
- 238000012545 processing Methods 0.000 claims abstract description 141
- 238000000034 method Methods 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims description 12
- 238000007667 floating Methods 0.000 description 19
- 230000014509 gene expression Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 101100497223 Bacillus thuringiensis cry1Ag gene Proteins 0.000 description 2
- 101100275685 Bacillus thuringiensis cry2Ad gene Proteins 0.000 description 2
- 101000937756 Homo sapiens Box C/D snoRNA protein 1 Proteins 0.000 description 2
- 101001139126 Homo sapiens Krueppel-like factor 6 Proteins 0.000 description 2
- 102100020679 Krueppel-like factor 6 Human genes 0.000 description 2
- 101100311460 Schizosaccharomyces pombe (strain 972 / ATCC 24843) sum2 gene Proteins 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101100116390 Schizosaccharomyces pombe (strain 972 / ATCC 24843) ded1 gene Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供了一种数据处理方法、装置以及设备,涉及计算机技术领域,方法包括:将待处理数据按照数位顺序划分为n个分组;待处理数据为十进制数,每个分组均包括一个目标十进制数;确定各个分组中的目标十进制数对应的BCD码,并对各个分组中的目标十进制数对应的BCD码进行移位处理;根据移位处理结果,按照分组顺序逐个确定各个分组对应的转换结果,并将第n个分组对应的转换结果确定为上述十进制数对应的二进制数;其中,i≥2时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,以及第i‑1个分组对应的转换结果,确定第i个分组对应的转换结果;i≤n。本申请可以快速、有效的实现十进制数与二进制数之间的转换。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置以及设备。
背景技术
2008年发行的IEEE754标准修订版本(IEEE754-2008)介绍了十进制浮点(DecimalFloating Point,DFP)单元的十进制64精度(16-digit)和128精度(34-digit)格式和规范,这为十进制浮点的运用提供了理论基础。
由于二进制数据在计算机中能够更有效的存储和进行快速运算,所以目前的浮点运算大部分仍然以二进制数为基础。基于此,无论是在数字系统还是在计算机算术运算系统中,实现十进制数与二进制数之间快速、有效的转换,具有非常重要的意义。
发明内容
本申请提供了一种数据处理方法、装置以及设备,可以快速、有效的实现十进制数与二进制数之间的转换。
第一方面,本申请提供了一种数据处理方法,该方法包括:
获取待处理数据,并将所述待处理数据按照数位顺序划分为n个分组;其中,所述待处理数据为十进制数,每个所述分组均包括一个目标十进制数,所述目标十进制数的位数小于所述十进制数的位数;其中,n为正整数,且n≥2;
确定各个所述分组中的目标十进制数对应的BCD(Binary-Coded Decimal,二进制编码的十进制)码,并对各个所述分组中的目标十进制数对应的BCD码进行移位处理;
根据移位处理结果,按照分组顺序逐个确定各个所述分组对应的转换结果,并将第n个分组对应的转换结果确定为所述十进制数对应的二进制数;
其中,所述根据移位处理结果,按照分组顺序逐个确定各个所述分组对应的转换结果,包括:
当i=1时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,确定第i个分组对应的转换结果;
当i≥2时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,以及第i-1个分组对应的转换结果,确定第i个分组对应的转换结果;其中,i为正整数,且i≤n。
在一些实施例中,所述确定各个所述分组中的目标十进制数对应的BCD码,并对各个所述分组中的目标十进制数对应的BCD码进行移位处理,包括:
确定各个所述分组中的目标十进制数的各个数位上的数对应的BCD码;
根据各个所述分组中的目标十进制数的各个数位上的数的进位数,确定各个所述分组中的目标十进制数的各个数位上的数对应的BCD码的移位次数,以及每次移位处理的移位位数;
基于所述移位次数与所述移位位数,对各个所述分组中的目标十进制数的各个数位上的数对应的BCD码进行移位处理。
在一些实施例中,所述当i=1时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,确定第i个分组对应的转换结果,包括:
当i=1时,将第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加,得到第i个分组对应的转换结果。
在一些实施例中,所述当i≥2时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,以及第i-1个分组对应的转换结果,确定第i个分组对应的转换结果,包括:
当i≥2时,根据第i个分组中的目标十进制数的位数,确定第i-1个分组对应的转换结果的进位数,根据第i-1个分组对应的转换结果的进位数,确定第i-1个分组对应的转换结果的移位次数以及每次移位处理的移位位数;
基于第i-1个分组对应的转换结果的移位次数以及每次移位处理的移位位数,对第i-1个分组对应的转换结果进行移位处理;
将第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加,得到第i个分组对应的转换结果。
在一些实施例中,所述将第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加,包括:
基于预置的全加器与加法器,对第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加。
在一些实施例中,所述基于预置的全加器与加法器,对第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加,包括:
对第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行压缩,基于预置的全加器与加法器,对压缩后的若干个二进制数进行累加。
在一些实施例中,所述确定各个所述分组中的目标十进制数对应的BCD码,并对各个所述分组中的目标十进制数对应的BCD码进行移位处理,包括:
按照由高位到低位的数位顺序,确定所述待处理数据的首个有效数位;所述有效数位上的数不为零;
根据所述首个有效数位,确定各个所述分组中的有效分组;
确定各个所述有效分组中的目标十进制数对应的BCD码,并对各个所述有效分组中的目标十进制数对应的BCD码进行移位处理。
第二方面,本申请提供了一种数据处理装置,该装置包括:
分组模块,用于获取待处理数据,并将所述待处理数据按照数位顺序划分为n个分组;其中,所述待处理数据为十进制数,每个所述分组均包括一个目标十进制数,所述目标十进制数的位数小于所述十进制数的位数;其中,n为正整数,且n≥2;
处理模块,用于确定各个所述分组中的目标十进制数对应的BCD码,并对各个所述分组中的目标十进制数对应的BCD码进行移位处理;
转换模块,用于根据移位处理结果,按照分组顺序逐个确定各个所述分组对应的转换结果,并将第n个分组对应的转换结果确定为所述十进制数对应的二进制数;
其中,所述根据移位处理结果,按照分组顺序逐个确定各个所述分组对应的转换结果,包括:
当i=1时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,确定第i个分组对应的转换结果;
当i≥2时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,以及第i-1个分组对应的转换结果,确定第i个分组对应的转换结果;其中,i为正整数,且i≤n。
在一些实施例中,所述转换模块中包括一加法器与若干个全加器;
当i=1时,所述若干个全加器用于将第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数作为待处理数据压缩为两路数据信号;
当i≥2时,所述若干个全加器用于将第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数作为待处理数据压缩为两路数据信号;
所述加法器用于对所述两路数据信号进行相加,得到第i个分组对应的转换结果。
在一些实施例中,所述若干个全加器包括第一全加器、第二全加器、第三全加器以及第四全加器;所述待处理数据包括六路数据信号;
所述第一全加器用于接收所述待处理数据中的其中三路数据信号,并基于接收到的数据信号输出第一数据信号与第二数据信号;
所述第二全加器用于接收所述待处理数据中的另外三路数据信号,并基于接收到的数据信号输出第三数据信号与第四数据信号;
所述第三全加器用于接收所述第一数据信号、所述第二数据信号对应的移位信号,以及所述第三数据信号,并基于接收到的数据信号输出第五数据信号与第六数据信号;
所述第四全加器用于接收所述第四数据信号、所述五数据信号,以及所述第六数据信号对应的移位信号,并基于接收到的数据信号输出第七数据信号与第八数据信号;
所述加法器用于接收所述第七数据信号对应的移位信号与所述第八数据信号,并对所述第七数据信号对应的移位信号与所述第八数据信号进行相加后,输出第i个分组对应的转换结果。
第三方面,本申请提供了一种电子设备,包括:存储器和处理器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面提供的数据处理方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被计算机执行时,实现如第一方面提供的数据处理方法。
本申请实施例中所提供的数据处理方法、装置以及设备,通过将待处理数据按照数位顺序划分为多个分组,并按照分组,对各个分组中的目标十进制数对应的BCD码进行移位处理后,根据移位处理结果,按照分组顺序逐个确定各个所述分组对应的转换结果,相较于将待处理数据的各个数位上的数对应的BCD码进行逐个移位处理后再进行转换的方式,效率更高,从而可以快速、有效的实现十进制数与二进制数之间的转换。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例中所提供的一种数据处理方法的步骤流程示意图;
图2为本申请实施例中提供的一种数据转换流程示意图;
图3为本申请实施例中提供的一种数据运算过程示意图;
图4为本申请实施例中提供的一种数据处理装置的程序模块示意图;
图5为本申请实施例提供的一种电子设备的硬件结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对申请开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,虽然本申请中的公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
应该理解,当本申请实施例中称某个元件与其它元件“连接”或“通信连接”时,该元件可以直接连接或电连接到其它元件;或者也可以存在若干个中间元件,该元件通过该若干个中间元件连接或电连接到其它元件。
本申请实施例中使用的术语“单元”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
本申请实施例中提供的数据处理方法、装置以及设备可应用于计算机技术领域,也可用于除计算机技术领域之外的任意领域,本申请对提供的数据处理方法、装置以及设备的应用领域不做限定。
以下对本申请实施例中涉及的部分术语进行解释:
POWER:Performance Optimization With Enhanced RISC,一种基于精简指令集计算机(Reduced Instruction Set Computer,RISC)架构的指令集体系构架,是最通用的几种中央处理器(Central Processing Unit,CPU)体系结构之一。
IEEE754标准:IEEE二进制浮点数算术标准,一种广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number),一些特殊数值(无穷与非数值),以及这些数值的“浮点数运算符”;它也指明了四种数值舍入规则和五种异常状况(包括异常发生的时机与处理方式)。
DFP:十进制浮点(Decimal Floating Point),一种用于表示小数点的计算方法,它使用十进制而不是二进制来表示小数。在二进制浮点表示法中,小数点被表示为二进制小数。然而,在十进制浮点表示法中,小数点被表示为十进制小数。例如,二进制浮点表示法中的1.1011被转换为十进制浮点表示法中的1.875。
BCD(Binary-Coded Decimal,二进制编码的十进制)码:一种用4位二进制数来表示1位十进制数中的0~9这10个数码的编码形式,它用二进制编码的十进制代码。这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行,相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。
在一些实施方式中,十进制浮点数一般不直接用二进制数来表示尾数,而是用BCD码这种编码形式,其利用4个bit的二进制数来表示1个十进制的数码,使二进制数和十进制数之间的转换得以快捷地进行。需要说明的是,十进制数10、11、12、13、14、15对应的二进制表述分别为1010、1011、1100、1101、1110、1111,在实际的计算过程中不会出现这些十进制数,故相应的二进制表述也不会出现在具体的计算中。
可以理解的是,十进制小数无法用二进制来表示,如0.7换算成二进制就是:0.7×2=1.4取“1”,留下0.4继续乘二取整;0.4×2=0.8取“0”,留下0.8继续乘二取整;0.8×2=1.6取“1”,留下0.6继续乘二取整;0.6×2=1.2取“1”,留下0.2继续乘二取整;0.2×2=0.4取“0”,留下0.4继续乘二取整。此过程会一直循环,直到达到精度限制后才会停止。
而对于十进制的整数,即一个数学意义上的整数,则可以转换为二进制数。十进制的整数可以用BCD数进行表示,在IEEE的标准里,将十进制数表示为64bit或者128bit。其中,十进制数的最后4bit表示符号位,1010、1100、1110、1111均表示符号为正;1011、1101均表示符号为负。二进制定点数包括有符号二进制数和无符号二进制数,其中无符号二进制数是可以被有符号二进制数所表示的(不考虑数据位宽的限制),有符号二进制数的第1个bit是符号位,若值为0,则为正数,否则为负数。
在一些实施方式中,以有符号的十进制数来转换为有符号的定点64bit二进制数(称为int64)为例,由于int64的最大值是2^63-1,即922_3372_0368_5477_5807,这需要19个BCD码来表示,使用的有符号十进制数应最多有19个BCD码(不含符号位),即19×4=76bit;若有更多的BCD数需要转换,则无法用int64来表示此数。将十进制数转换为二进制数,需要将BCD码对应的位加上,如BCD码为0001,表示这个数是“1”,但如果这个“1”在十位上,则表示“10”;在百位上,则表示“100”。因此数据类型转换的重点是将每个BCD数所对应的位用二进制定点数表示出来。
然而,传统的转换方式通常都是逐个进行转换,如BCD数123(十六进制),即我们理解的十进制数123,“3”表示为11,“20”表示为1_0100,“100”表示为110_0100,则十进制数123的二进制表示为11+10100+1100100=1111011。对于这种数值不大的BCD数,可以直接使用二进制的相应表达相加来得到最终转换结果,但当BCD数的位宽较大时,需要处理的数据将异常多,再使用加法将这些二进制数相加,会使整个过程变得十分复杂,且在电路实现上,这种方式也效率低下,因为没有可重复利用的计算单元,只是将每个BCD数所对应的实际大小用二进制数来表示,并将其全部相加,在电路设计上也没有可以优化的空间。
由于二进制数据在计算机中能够更有效的存储和进行快速运算,所以目前的浮点运算大部分仍然以二进制数为基础。基于此,无论是在数字系统还是在计算机算术运算系统中,实现十进制与二进制数之间快速、有效的转换,具有非常重要的意义。
面对上述技术问题,本申请实施例中提供了一种数据处理方法,该数据处理方法可以快速、有效的实现十进制数与二进制数之间的转换,从而为金融计算、数据管理、建模分析、税率计算等对十进制数有需求的领域,提供了更好的解决方案。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。可以理解的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
参照图1,图1为本申请实施例中所提供的一种数据处理方法的步骤流程示意图。在一些实施方式中,上述数据处理方法包括:
S101、获取待处理数据,并将待处理数据按照数位顺序划分为n个分组。其中,待处理数据为十进制数,每个分组均包括一个目标十进制数,该目标十进制数的位数小于上述十进制数的位数。
可选的,n为正整数,且n≥2。
示例性的,假设需要处理的BCD数为0010_0010_0001_0010_0010_0001,该BCD数转换为十六进制数表示为221221,整体的19个BCD码表示为:0_000_000_000_000_221_221(十六进制表达)。
在本申请一下实施例中,若将上述十六进制数视为十进制数,则该十进制数一共具有19个数位,从左往右将各个数位依次定义为BCD0-BCD18。
在一些实施方式中,由于BCD0在数值上保持不变,所以可以单独考虑,将剩余的BCD1到BCD18按照数位顺序划分为n个分组。
示例性的,可以将BCD1到BCD18按照数位顺序划分为BCD1-BCD3、BCD4-BCD6、BCD7-BCD9、BCD10-BCD12、BCD13-BCD15、BCD16-BCD18这6个分组,每个分组中均包括一个目标十进制数,该目标十进制数的位数为3。例如,BCD13-BCD15这个分组中的目标十进制数为“221”,BCD10-BCD12这个分组中的目标十进制数为“000”。
S102、确定各个分组中的目标十进制数对应的BCD码,并对各个分组中的目标十进制数对应的BCD码进行移位处理。
在本申请一些实施例中,可以先确定各个分组中的目标十进制数的各个数位上的数对应的BCD码,之后根据各个分组中的目标十进制数的各个数位上的数的进位数,确定各个分组中的目标十进制数的各个数位上的数对应的BCD码的移位次数,以及每次移位处理的移位位数;基于该移位次数与移位位数,对各个分组中的目标十进制数的各个数位上的数对应的BCD码进行移位处理。
在一些实施方式中,以BCD13-BCD15这个分组为例,该分组中的目标十进制数“221”的各个数位上的数对应的BCD码为0010_0010_0001。可以认为此时的BCD13代表百位,BCD14代表十位,BCD15代表个位,由此可以将这些数进行适当的左移来使得其数值进行相应的增大。对于百位,即乘100,将其转为乘(64+32+4);对于十位,即乘10,将其转为乘(8+2);对于个位,即乘1,数值保持不变。其中,乘64表示将该BCD数左移6位(二进制数每左移一位,代表其数值乘2);同理乘32和乘4分别对应将该BCD数左移5位和左移2位。乘8和乘2分别对应左移3位和左移1位。具体移位过程如表1所示。
表1:BCD13-BCD15移位示意表
512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | |
百位:乘64 | 0 | 0 | 1 | 0 | - | - | - | - | - | - |
百位:乘32 | 0 | 0 | 1 | 0 | - | - | - | - | - | |
百位:乘4 | 0 | 0 | 1 | 0 | - | - | ||||
十位:乘8 | 0 | 0 | 1 | 0 | - | - | - | |||
十位:乘2 | 0 | 0 | 1 | 0 | - | |||||
个位:乘1 | 0 | 0 | 0 | 1 | ||||||
转换结果 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 |
S103、根据移位处理结果,按照分组顺序逐个确定各个分组对应的转换结果,并将第n个分组对应的转换结果确定为十进制数对应的二进制数。
在一些实施方式中,上述根据移位处理结果,按照分组顺序逐个确定各个分组对应的转换结果,包括:
当i=1时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,确定第i个分组对应的转换结果。
当i≥2时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,以及第i-1个分组对应的转换结果,确定第i个分组对应的转换结果;其中,i为正整数,且i≤n。
为了更好的理解本申请实施例,参照图2,图2为本申请实施例中提供的一种数据转换流程示意图。
在一些实施方式中,如图2所示,BCD0可以先保留其原有数值,如“0000”。根据对第1个分组中的目标十进制数对应的BCD码(BCD1、BCD2、BCD3)的移位处理结果,可以到的第1个分组对应的转换结果,即“第1次转换结果”。根据第2个分组中的目标十进制数对应的BCD码(BCD4、BCD5、BCD6)的移位处理结果,以及第1个分组对应的转换结果(第1次转换结果),确定出第2个分组对应的转换结果,即“第2次转换结果”。根据第3个分组中的目标十进制数对应的BCD码(BCD7、BCD8、BCD9)的移位处理结果,以及第2个分组对应的转换结果(第2次转换结果),确定出第3个分组对应的转换结果,即“第3次转换结果”。根据第4个分组中的目标十进制数对应的BCD码(BCD10、BCD11、BCD12)的移位处理结果,以及第3个分组对应的转换结果(第3次转换结果),确定出第4个分组对应的转换结果,即“第4次转换结果”。根据第5个分组中的目标十进制数对应的BCD码(BCD13、BCD14、BCD15)的移位处理结果,以及第4个分组对应的转换结果(第4次转换结果),确定出第5个分组对应的转换结果,即“第5次转换结果”。根据第6个分组中的目标十进制数对应的BCD码(BCD16、BCD17、BCD18)的移位处理结果,以及第5个分组对应的转换结果(第5次转换结果),确定出第6个分组对应的转换结果,即“第6次转换结果”。
在一些实施方式中,可以将“第6次转换结果”确定为上述十进制数对应的二进制数。
本申请实施例中所提供的数据处理方法,通过将待处理数据按照数位顺序划分为多个分组,并按照分组,对各个分组中的目标十进制数对应的BCD码进行移位处理后,根据移位处理结果,按照分组顺序逐个确定各个所述分组对应的转换结果,相较于将待处理数据的各个数位上的数对应的BCD码进行逐个移位处理后再进行转换的方式,效率更高,从而可以快速、有效的实现十进制数与二进制数之间的转换。
基于上述实施例中描述的内容,在本申请一些实施方式中,上述步骤S102中确定各个分组中的目标十进制数对应的BCD码,并对各个分组中的目标十进制数对应的BCD码进行移位处理,包括:
按照由高位到低位的数位顺序,确定待处理数据的首个有效数位;该有效数位上的数不为零;根据首个有效数位,确定各个分组中的有效分组;确定各个有效分组中的目标十进制数对应的BCD码,并对各个有效分组中的目标十进制数对应的BCD码进行移位处理。
在一些实施方式中,仍旧假设需要测试的BCD数为0010_0010_0001_0010_0010_0001(十六进制表示为221221),整体的19个BCD码表示为:0_000_000_000_000_221_221(十六进制表达),从左往右将BCD数定义为BCD0到BCD18。对于BCD0,暂时不对其进行处理,即保留其原有数值。上述19个BCD码的首个有效数位为“2”,即BCD13,在本申请实施例中,由于BCD1-BCD3、BCD4-BCD6、BCD7-BCD9、BCD10-BCD12这4个分组的值为0,因此可以忽略不计,将BCD13-BCD15、BCD16-BCD18这2个分组作为有效分组来进行后续的移位处理。
以下将通过举例的来具体阐述上述转换流程。
在一些实施方式中,先处理第一个“221”,即BCD13-BCD15,实际的二进制表示是0010_0010_0001。可以认为此时的BCD13代表百位,BCD14代表十位,BCD15代表个位,由此可以将这些数进行适当的左移来使得其数值进行相应的增大。对于百位,即乘100,将其转为乘(64+32+4);对于十位,即乘10,将其转为乘(8+2);对于个位,即乘1,数值保持不变。其中,乘64表示将该BCD数左移6位(二进制数每左移一位,代表其数值乘2);同理乘32和乘4分别对应将该BCD数左移5位和左移2位。乘8和乘2分别对应左移3位和左移1位。具体移位如表1所示。
在一些实施方式中,若将BCD13-BCD15这个分组看做是第1个分组,则可以将该分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加,得到该分组对应的转换结果。如表1所示,将移位后的数字相加便可以得到目标十进制数“221”对应的二进制数“11011101”,该二进制数“11011101”即为BCD13-BCD15这个分组对应的转换结果。
在一些实施方式中,若将BCD13-BCD15这个分组看做是第1个分组,将BCD16-BCD18这个分组看做是第2个分组,则可以根据第2个分组中的目标十进制数的位数,确定第1个分组对应的转换结果的进位数,根据第1个分组对应的转换结果的进位数,确定第1个分组对应的转换结果的移位次数以及每次移位处理的移位位数;基于第1个分组对应的转换结果的移位次数以及每次移位处理的移位位数,对第1个分组对应的转换结果进行移位处理;将第1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第2个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加,得到第2个分组对应的转换结果。
具体的,由于第2个分组中的目标十进制数的位数为3位,因此可以确定第1个分组对应的转换结果的进位数为3位,可以将第1个分组对应的转换结果“11011101”作为一个整体,看作千位,即乘1000,将其转为乘(1024-32+8)。其中,乘1024表示该整体左移10位,乘32表示该整体左移5位(此时是减法,故需要将对应的二进制数进行取反加一),乘8表示将该整体左移3位。
对于BCD16-BCD18这个分组,其移位处理方式与上述实施例中对BCD13-BCD15这个分组的移位处理方式相同,可以认为BCD16代表百位,BCD17代表十位,BCD18代表个位。对于百位,即乘100,将其转为乘(64+32+4);对于十位,即乘10,将其转为乘(8+2);对于个位,即乘1,数值保持不变。具体的移位过程如表2所示。
表2:BCD16-BCD18移位示意表
基于表2所示,将移位后的数字进行累加,便可以得到十进制数221221对应的二进制数“110110000000100101”。
本申请实施例提供的数据处理方法,将待处理数据按3个BCD数一组的形式来拆分后,每个分组与上一个分组的转换结果进行求和处理,此方式相较于1个BCD数依次去通过移位来将十进制数转换为二进制数的方式,效率更高。
基于上述实施例中描述的内容,在本申请一些实施例中,可以基于预置的全加器与加法器,对第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加。
在本申请一些实施例中,可以预先设置一加法器与若干个全加器;其中:
当i=1时,上述若干个全加器用于将第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数作为待处理数据压缩为两路数据信号;当i≥2时,上述若干个全加器用于将第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数作为待处理数据压缩为两路数据信号。
上述加法器用于对上述两路数据信号进行相加,得到第i个分组对应的转换结果。
可选的,上述全加器可以为3-2压缩器。
其中,3-2压缩器是将3位二进制数压缩成2位二进制数的电路。其实现方式如下:
(1)定义3个输入端口A、B、C和2个输出端口S、C。
(2)将A、B、C分别与异或(XOR)门相连,得到2个输出F1、F2。
(3)将F1、F2分别和与(AND)门相连,得到2个输出S、C。
(4)输出S为压缩后的2位二进制数,输出C为压缩过程中产生的进位。
具体的,若输入信号为x、y、z,输出信号为cry、sum,则有以下表达式:
cry=(x&y)|(x&z)|(y&z)
sum=x^y^z
其中,“&”表示逻辑与,“|”表示逻辑或,“^”表示逻辑异或。可以发现3-2压缩器也是一种全加器,即cry是进位,sum是数据求和后的低位,3个数据经过3-2压缩器之后,会变成2个数据(sum和cry),且满足2cry+sum=x+y+z,2cry表示将cry左移一位。
可以理解的是,以表2为例,需要将9个二进制数进行累加,可以发现上述9个二进制数有很多位是空的(即数值为0),因此可以将上述9个二进制数整合起来,进而达到优化的目的。
在一些实施方式中,可以对第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行压缩,基于预置的全加器与加法器,对压缩后的若干个二进制数进行累加。
示例性的,对于BCD(n),将其用sum和cry来表示,结果表示为sum0,cry0。对于BCD(n+1)、BCD(n+2)、BCD(n+3),分别表示为A、B、C。其中,BCD(n)用于表示BCD0或者第i个分组对应的转换结果,BCD(n+1)-BCD(n+3)用于表示BCD1-BCD3或者第i+1个分组中的目标十进制数的各个数位上的数对应的BCD码。例如,若BCD(n+1)-BCD(n+3)为BCD1-BCD3,则BCD(n)表示BCD0(即sum和cry均是0值);若BCD(n+1)-BCD(n+3)为BCD16-BCD18,则BCD(n)表示BCD13-BCD15的转换结果,如表2中得到的二进制数“110110000000100101”。
如表3所示,表3为数据压缩累加示意表。
表3:数据压缩示意表
/>
在表3中,将in1+in2+in3+in4+in5+in6等价于表2中的9个二进制数相加,可以看出BCD(n+1)被包括在in1、in2中;BCD(n+2)被包括在in2、in4中;BCD(n+3)被包括在in3中;BCD(n)被包含在in1、in2、in3、in4、in5、in6中。其中,(sum0+cry0)×1000,即(sum0+cry0)×(1024-32+8),对于乘以“-32”的情形,需要取反加1,故在最后一行多了两个“1”。此外,表3中没有填数字的空格均为0值。
参照图3,图3为本申请实施例中提供的一种数据运算过程示意图。
在一些实施方式中,将需要相加的数据压缩成in1+in2+in3+in4+in5+in6这6个信号,通过对in1、in2、in3使用3-2压缩器(第1次)得到sum_num1和cry_num1(左移一位变为new_cry_num1);对in4、in5、in6使用3-2压缩器(第2次)得到sum_num2和cry_num2(左移一位变为new_cry_num2);对sum_num1、new_cry_num1、sum_num2使用3-2压缩器(第3次)得到sum_num3和cry_num3(左移一位变为new_cry_num3);对sum_num3、new_cry_num3、new_cry_num2使用3-2压缩器(第4次)得到sum_num4和cry_num4(左移一位变为new_cry_num4),即in1+in2+in3+in4+in5+in6得到的sum和cry分别是sum_num4和cry_num4(左移一位变为new_cry_num4)。通过4次使用3-2压缩器,得到了需要的sum_num4和new_cry_num4,最后再将sum_num4和new_cry_num4通过加法器相加,便得到了最终的转换结果。
其中,cry0的低3bit均为0(后续其他cry的低3bit也均为0),具体的原因如下:
若cry对应BCD(n),则此时的sum0为BCD(n)本身,cry0为0000。
若cry对应BCD(n)+BCD(n+1)+BCD(n+2)+BCD(n+3),考虑表3的最后4列,可以发现如下规律:in1+in2+in3对应sum1=xxxx,cry1=xxx0(其中x可能为0,也可能为1),cry1左移一位后为new_cry1=xx00;in4+in5+in6对应sum2=x000,cry2=x000,cry2左移一位后为new_cry2=0000。于是sum1+new_cry1+sum2对应sum3=xxxx,cry3=xx00,cry3左移一位后为new_cry3=x000。最后是sum3+new_cry3+new_cry2,对应sum4=xxxx,cry4=x000。可以发现,此时的cry4=x000,即in1+in2+in3+in4+in5+in6的cry位低3bit为全0。
如果是(BCD(n)+BCD(n+1)+BCD(n+2)+BCD(n+3))+BCD(n+4)+BCD(n+5)+BCD(n+6),同样是考虑表3的最后4列,只是此时表3中的sum0和cry0换成了BCD(n)+BCD(n+1)+BCD(n+2)+BCD(n+3)对应的新sum和新cry。如上述推导,(BCD(n)+BCD(n+1)+BCD(n+2)+BCD(n+3))+BCD(n+4)+BCD(n+5)+BCD(n+6)产生的cry的低3bit为全0。剩余的转换流程同样如此。
本申请实施例提供的数据处理方法,通过电路优化的方式,将9个二进制数相加转为6个输入信号相加,且通过4次3-2压缩器的使用来得到sum和cry,再使用加法器将sum和左移一位后的cry相加,得到最终的转换结果,此方式方便快捷,可以快速、有效的实现十进制数与二进制数之间的转换。
可以理解的是,本申请提供的数据处理方法并不局限于POWER架构,各种类型的处理器架构均可以依据本申请提供的数据处理方法,将十进制数转换为二进制数。
另外,由于其它进制的整数均可以用十进制数来表示,因此本申请提供的数据处理方法也可以支持其它进制的整数转换为二进制数。
基于上述实施例中描述的内容,本申请实施例中还提供一种数据处理装置,参照图4,图4为本申请实施例中提供的一种数据处理装置的程序模块示意图,在一些实施方式中,上述数据处理装置40包括:
分组模块401,用于获取待处理数据,并将所述待处理数据按照数位顺序划分为n个分组;其中,所述待处理数据为十进制数,每个所述分组均包括一个目标十进制数,所述目标十进制数的位数小于所述十进制数的位数;其中,n为正整数,且n≥2;
处理模块402,用于确定各个所述分组中的目标十进制数对应的BCD码,并对各个所述分组中的目标十进制数对应的BCD码进行移位处理;
转换模块403,用于根据移位处理结果,按照分组顺序逐个确定各个所述分组对应的转换结果,并将第n个分组对应的转换结果确定为所述十进制数对应的二进制数;
其中,所述根据移位处理结果,按照分组顺序逐个确定各个所述分组对应的转换结果,包括:
当i=1时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,确定第i个分组对应的转换结果;
当i≥2时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,以及第i-1个分组对应的转换结果,确定第i个分组对应的转换结果;其中,i为正整数,且i≤n。
本申请实施例中所提供的数据处理方法,通过将待处理数据按照数位顺序划分为多个分组,并按照分组,对各个分组中的目标十进制数对应的BCD码进行移位处理后,根据移位处理结果,按照分组顺序逐个确定各个所述分组对应的转换结果,相较于将待处理数据的各个数位上的数对应的BCD码进行逐个移位处理后再进行转换的方式,效率更高,从而可以快速、有效的实现十进制数与二进制数之间的转换。
在一些实施例中,处理模块402,用于:
确定各个所述分组中的目标十进制数的各个数位上的数对应的BCD码;
根据各个所述分组中的目标十进制数的各个数位上的数的进位数,确定各个所述分组中的目标十进制数的各个数位上的数对应的BCD码的移位次数,以及每次移位处理的移位位数;
基于所述移位次数与所述移位位数,对各个所述分组中的目标十进制数的各个数位上的数对应的BCD码进行移位处理。
在一些实施例中,转换模块403,用于:
当i=1时,将第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加,得到第i个分组对应的转换结果。
在一些实施例中,转换模块403,用于:
当i≥2时,根据第i个分组中的目标十进制数的位数,确定第i-1个分组对应的转换结果的进位数,根据第i-1个分组对应的转换结果的进位数,确定第i-1个分组对应的转换结果的移位次数以及每次移位处理的移位位数;
基于第i-1个分组对应的转换结果的移位次数以及每次移位处理的移位位数,对第i-1个分组对应的转换结果进行移位处理;
将第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加,得到第i个分组对应的转换结果。
在一些实施例中,转换模块403,用于:
基于预置的全加器与加法器,对第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加。
在一些实施例中,转换模块403,用于:
对第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行压缩,基于预置的全加器与加法器,对压缩后的若干个二进制数进行累加。
在一些实施例中,转换模块403中包括一加法器与若干个全加器;
当i=1时,所述若干个全加器用于将第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数作为待处理数据压缩为两路数据信号;
当i≥2时,所述若干个全加器用于将第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数作为待处理数据压缩为两路数据信号;
所述加法器用于对所述两路数据信号进行相加,得到第i个分组对应的转换结果。
在一些实施例中,上述若干个全加器包括第一全加器、第二全加器、第三全加器以及第四全加器;所述待处理数据包括六路数据信号;
所述第一全加器用于接收所述待处理数据中的其中三路数据信号,并基于接收到的数据信号输出第一数据信号与第二数据信号;
所述第二全加器用于接收所述待处理数据中的另外三路数据信号,并基于接收到的数据信号输出第三数据信号与第四数据信号;
所述第三全加器用于接收所述第一数据信号、所述第二数据信号对应的移位信号,以及所述第三数据信号,并基于接收到的数据信号输出第五数据信号与第六数据信号;
所述第四全加器用于接收所述第四数据信号、所述五数据信号,以及所述第六数据信号对应的移位信号,并基于接收到的数据信号输出第七数据信号与第八数据信号;
所述加法器用于接收所述第七数据信号对应的移位信号与所述第八数据信号,并对所述第七数据信号对应的移位信号与所述第八数据信号进行相加后,输出第i个分组对应的转换结果。
在一些实施例中,处理模块402,用于:
按照由高位到低位的数位顺序,确定所述待处理数据的首个有效数位;所述有效数位上的数不为零;
根据所述首个有效数位,确定各个所述分组中的有效分组;
确定各个所述有效分组中的目标十进制数对应的BCD码,并对各个所述有效分组中的目标十进制数对应的BCD码进行移位处理。
需要说明的是,本申请实施例中分组模块401、处理模块402以及转换模块403具体执行的内容可以参阅上述实施例中描述的数据处理方法中的各个步骤,此处不做赘述。
进一步的,基于上述实施例中所描述的内容,本申请实施例中还提供了一种电子设备,该电子设备包括至少一个处理器和存储器;其中,存储器存储计算机执行指令;上述至少一个处理器执行存储器存储的计算机执行指令,以实现如上述实施例中描述的数据处理方法中的各个步骤。
为了更好的理解本申请实施例,参照图5,图5为本申请实施例提供的一种电子设备的硬件结构示意图。
如图5所示,本实施例的电子设备50包括:处理器501以及存储器502;其中:
存储器502,用于存储计算机执行指令;
处理器501,用于执行存储器存储的计算机执行指令,以实现上述实施例中描述的数据处理方法中的各个步骤。
可选地,存储器502既可以是独立的,也可以跟处理器501集成在一起。
当存储器502独立设置时,该设备还包括总线503,用于连接所述存储器502和处理器501。
本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上实施例中描述的数据处理方法中的各个步骤。
本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速存储器,也可能还包括非易失性存储,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器,电可擦除可编程只读存储器,可擦除可编程只读存储器,可编程只读存储器,只读存储器,磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (12)
1.一种数据处理方法,其特征在于,所述方法包括:
获取待处理数据,并将所述待处理数据按照数位顺序划分为n个分组;其中,所述待处理数据为十进制数,每个所述分组均包括一个目标十进制数,所述目标十进制数的位数小于所述十进制数的位数;其中,n为正整数,且n≥2;
确定各个所述分组中的目标十进制数对应的BCD码,并对各个所述分组中的目标十进制数对应的BCD码进行移位处理;
根据移位处理结果,按照分组顺序逐个确定各个所述分组对应的转换结果,并将第n个分组对应的转换结果确定为所述十进制数对应的二进制数;
其中,所述根据移位处理结果,按照分组顺序逐个确定各个所述分组对应的转换结果,包括:
当i=1时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,确定第i个分组对应的转换结果;
当i≥2时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,以及第i-1个分组对应的转换结果,确定第i个分组对应的转换结果;其中,i为正整数,且i≤n。
2.根据权利要求1所述的数据处理方法,其特征在于,所述确定各个所述分组中的目标十进制数对应的BCD码,并对各个所述分组中的目标十进制数对应的BCD码进行移位处理,包括:
确定各个所述分组中的目标十进制数的各个数位上的数对应的BCD码;
根据各个所述分组中的目标十进制数的各个数位上的数的进位数,确定各个所述分组中的目标十进制数的各个数位上的数对应的BCD码的移位次数,以及每次移位处理的移位位数;
基于所述移位次数与所述移位位数,对各个所述分组中的目标十进制数的各个数位上的数对应的BCD码进行移位处理。
3.根据权利要求2所述的数据处理方法,其特征在于,所述当i=1时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,确定第i个分组对应的转换结果,包括:
当i=1时,将第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加,得到第i个分组对应的转换结果。
4.根据权利要求2所述的数据处理方法,其特征在于,所述当i≥2时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,以及第i-1个分组对应的转换结果,确定第i个分组对应的转换结果,包括:
当i≥2时,根据第i个分组中的目标十进制数的位数,确定第i-1个分组对应的转换结果的进位数,根据第i-1个分组对应的转换结果的进位数,确定第i-1个分组对应的转换结果的移位次数以及每次移位处理的移位位数;
基于第i-1个分组对应的转换结果的移位次数以及每次移位处理的移位位数,对第i-1个分组对应的转换结果进行移位处理;
将第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加,得到第i个分组对应的转换结果。
5.根据权利要求4所述的数据处理方法,其特征在于,所述将第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加,包括:
基于预置的全加器与加法器,对第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加。
6.根据权利要求4所述的数据处理方法,其特征在于,所述基于预置的全加器与加法器,对第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行累加,包括:
对第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数进行压缩,基于预置的全加器与加法器,对压缩后的若干个二进制数进行累加。
7.根据权利要求2所述的数据处理方法,其特征在于,所述确定各个所述分组中的目标十进制数对应的BCD码,并对各个所述分组中的目标十进制数对应的BCD码进行移位处理,包括:
按照由高位到低位的数位顺序,确定所述待处理数据的首个有效数位;所述有效数位上的数不为零;
根据所述首个有效数位,确定各个所述分组中的有效分组;
确定各个所述有效分组中的目标十进制数对应的BCD码,并对各个所述有效分组中的目标十进制数对应的BCD码进行移位处理。
8.一种数据处理装置,其特征在于,所述装置包括:
分组模块,用于获取待处理数据,并将所述待处理数据按照数位顺序划分为n个分组;其中,所述待处理数据为十进制数,每个所述分组均包括一个目标十进制数,所述目标十进制数的位数小于所述十进制数的位数;其中,n为正整数,且n≥2;
处理模块,用于确定各个所述分组中的目标十进制数对应的BCD码,并对各个所述分组中的目标十进制数对应的BCD码进行移位处理;
转换模块,用于根据移位处理结果,按照分组顺序逐个确定各个所述分组对应的转换结果,并将第n个分组对应的转换结果确定为所述十进制数对应的二进制数;
其中,所述根据移位处理结果,按照分组顺序逐个确定各个所述分组对应的转换结果,包括:
当i=1时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,确定第i个分组对应的转换结果;
当i≥2时,根据第i个分组中的目标十进制数对应的BCD码的移位处理结果,以及第i-1个分组对应的转换结果,确定第i个分组对应的转换结果;其中,i为正整数,且i≤n。
9.根据权利要求8所述的数据处理装置,其特征在于,所述转换模块中包括一加法器与若干个全加器;
当i=1时,所述若干个全加器用于将第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数作为待处理数据压缩为两路数据信号;
当i≥2时,所述若干个全加器用于将第i-1个分组对应的转换结果在每次移位处理后生成的二进制数,以及第i个分组中的目标十进制数的各个数位上的数对应的BCD码在每次移位处理后生成的二进制数作为待处理数据压缩为两路数据信号;
所述加法器用于对所述两路数据信号进行相加,得到第i个分组对应的转换结果。
10.根据权利要求9所述的数据处理装置,其特征在于,所述若干个全加器包括第一全加器、第二全加器、第三全加器以及第四全加器;所述待处理数据包括六路数据信号;
所述第一全加器用于接收所述待处理数据中的其中三路数据信号,并基于接收到的数据信号输出第一数据信号与第二数据信号;
所述第二全加器用于接收所述待处理数据中的另外三路数据信号,并基于接收到的数据信号输出第三数据信号与第四数据信号;
所述第三全加器用于接收所述第一数据信号、所述第二数据信号对应的移位信号,以及所述第三数据信号,并基于接收到的数据信号输出第五数据信号与第六数据信号;
所述第四全加器用于接收所述第四数据信号、所述五数据信号,以及所述第六数据信号对应的移位信号,并基于接收到的数据信号输出第七数据信号与第八数据信号;
所述加法器用于接收所述第七数据信号对应的移位信号与所述第八数据信号,并对所述第七数据信号对应的移位信号与所述第八数据信号进行相加后,输出第i个分组对应的转换结果。
11.一种电子设备,其特征在于,包括:存储器和处理器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至7任一项所述的数据处理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被计算机执行时,实现如权利要求1至7任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311620574.4A CN117632854A (zh) | 2023-11-29 | 2023-11-29 | 数据处理方法、装置以及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311620574.4A CN117632854A (zh) | 2023-11-29 | 2023-11-29 | 数据处理方法、装置以及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117632854A true CN117632854A (zh) | 2024-03-01 |
Family
ID=90033443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311620574.4A Pending CN117632854A (zh) | 2023-11-29 | 2023-11-29 | 数据处理方法、装置以及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117632854A (zh) |
-
2023
- 2023-11-29 CN CN202311620574.4A patent/CN117632854A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9804823B2 (en) | Shift significand of decimal floating point data | |
TWI383595B (zh) | 用於低密度奇偶校驗解碼器之有效校驗節點訊息轉換近似 | |
CN105468331B (zh) | 独立的浮点转换单元 | |
CN111522528B (zh) | 乘法器、乘法运算方法、运算芯片、电子设备及存储介质 | |
CN111796870B (zh) | 数据格式转换装置、处理器、电子设备及模型运行方法 | |
US8903881B2 (en) | Arithmetic circuit, arithmetic processing apparatus and method of controlling arithmetic circuit | |
US8788561B2 (en) | Arithmetic circuit, arithmetic processing apparatus and method of controlling arithmetic circuit | |
US10949168B2 (en) | Compressing like-magnitude partial products in multiply accumulation | |
CN116400883A (zh) | 一种可切换精度的浮点乘加器 | |
CN111936965A (zh) | 随机舍入逻辑 | |
US7219117B2 (en) | Methods and systems for computing floating-point intervals | |
CN117632854A (zh) | 数据处理方法、装置以及设备 | |
CN116450085A (zh) | 一种可扩展的BFloat16点乘运算器及微处理器 | |
US7236999B2 (en) | Methods and systems for computing the quotient of floating-point intervals | |
US20120259903A1 (en) | Arithmetic circuit, arithmetic processing apparatus and method of controlling arithmetic circuit | |
CN115034163A (zh) | 一种支持两种数据格式切换的浮点数乘加计算装置 | |
US5661674A (en) | Divide to integer | |
CN113504892A (zh) | 一种设计乘法器查找表的方法、系统、设备及介质 | |
CN117075842B (zh) | 十进制加法器及十进制运算方法 | |
CN117632857A (zh) | 数据处理方法、装置以及设备 | |
US20240045653A1 (en) | Method and Apparatus for Converting to Enhanced Block Floating Point Format | |
US20240036822A1 (en) | Enhanced Block Floating Point Number Multiplier | |
CN113703840B (zh) | 数据处理装置、方法、芯片、计算机设备及存储介质 | |
US20240036821A1 (en) | Floating-point number decoder | |
Ruffaldi et al. | Decoding-Free Two-Input Arithmetic for Low-Precision Real Numbers |
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 |