CN113485674A - 一种大整数算法的计算机处理系统 - Google Patents

一种大整数算法的计算机处理系统 Download PDF

Info

Publication number
CN113485674A
CN113485674A CN202110696629.4A CN202110696629A CN113485674A CN 113485674 A CN113485674 A CN 113485674A CN 202110696629 A CN202110696629 A CN 202110696629A CN 113485674 A CN113485674 A CN 113485674A
Authority
CN
China
Prior art keywords
integer
large integer
array
module
storage
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.)
Withdrawn
Application number
CN202110696629.4A
Other languages
English (en)
Inventor
孟祥成
沈玉权
李�杰
蔡志峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanjiang University
Original Assignee
Sanjiang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sanjiang University filed Critical Sanjiang University
Priority to CN202110696629.4A priority Critical patent/CN113485674A/zh
Publication of CN113485674A publication Critical patent/CN113485674A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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 for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及一种大整数算法的计算机处理系统,属于计算机技术领域。其包括大整数的存储模块、大整数的输入与读取模块、大整数的输出模块、大整数运算处理器和结果处理器,大整数的存储分为两大方面,内存存储与外存存储,采用了文本文件形式。本发明以大整数的“基”为标准进行分组和合组,以“数组”表达大整数,提高了计算机处理系统的数据处理能力和通用性。

Description

一种大整数算法的计算机处理系统
技术领域
本发明涉及一种大整数算法的计算机处理系统,属于计算机技术领域。
背景技术
由于“大整数”超出了程序设计语言整数类型的值集范围,所以它的表达、存储、读取、处理、输出等问题用一般编程方法难以实现。但随着大整数应用领域逐渐扩大及个人计算机处理能力的快速发展,很多领域的科技工作者,由于自身工作的需要,针对性提出了一些大整数处理的一些思路和方法,但由于加密和解密领域考虑系统对硬件支持较多,其方法在数据处理能力和通用性方面存在局限性。
发明内容
针对上述情况,为克服现有技术的缺陷,本发明提供一种大整数算法的计算机处理系统,有效的解决了上述技术背景中提到的问题。
为实现上述目的,本发明提供如下技术方案:
本发明提供了一种大整数算法的计算机处理系统,其包括大整数的存储模块、大整数的输入与读取模块、大整数的输出模块、大整数运算处理器和结果处理器,所述大整数的存储模块和大整数的输入与读取模块分别与大整数运算处理器电性连接,大整数的输入与读取模块与大整数的存储模块电性连接,大整数运算处理器与结果处理器电性连接,结果处理器与大整数的输出模块电性连接。
所述大整数的存储模块对外部输入的大整数进行存储,包括内存存储与外存存储,所述内存存储大整数的方式用“数组”表达,从高到低写入大整数的各值,先“分组”,各组之间以空格分隔,其中除做高组外,不足九位数指定的位数,高位用0补齐,“数组”的非0“最高位”是符号位,正整数的符号“+”用“-2”表示,负整数的符号“-”用“-1”表示,最高位以下各下标对应的数组变量分别是整数数据的“分组”;
所述大整数的输入与读取模块将大整数先后输入至所述大整数的存储模块与大整数运算处理器,并从大整数的存储模块内的文本文件中读取大整数;
所述大整数运算处理器对所述大整数的输入与读取模块输入的大整数数据进行计算;
所述结果处理器将大整数运算处理器计算所得的值转换为字符串,并进行输出;
所述大整数的输出模块以大整数的“基”为标准进行合组,所述大整数的“基”为1000000000,即9位整数为一组,其中除做高组外,不足九位数指定的位数,高位用0补齐,各组之间用空格分隔,其非0“最高位”是符号位,“-2”表示正整数的符号为“+”,“-1”表示负整数的符号为“-”,将所述大整数运算处理器处理的大整数进行输出。
进一步地,所述输入模块从键盘输入大整数,要求连续输入正号或负号及全部数字,数字之间用空格实现分组。
进一步地,所述外存存储大整数采用数据库形式或是采用文本文件形式。
进一步地,所述内存存储大整数采用字符串“存储”大整数,最终转换为“数组”存储方式。
进一步地,所述大整数的输出模块的读取大整数方法为:初始化:临时数值型数组,容量为9999,读取文件首个非空字符,如果为+,说明为正数,如果为-,说明为负数,读取以下数据到tempLine,将读取的数据行tempLine按空格数字串赋值到多字符串数组中,数据长度超过临时数组的剩余容量,当超过临时数组剩余容量时,根据数据长度扩大临时数组的容量,将字符串数组中的数据逐个写入到大整数数组中,读下一个数据行到tempLine,将临时数组中的数据按顺序连续地导入到大整数数组中,并保证最低一组数据存放在下标为0的数组单元中。
进一步地,所述大整数运算处理器大整数的模、余算法如下:正整数u=(u1u2......um+n)和v=(v1v2......vn)b,基数为b,这里v1>0,且n>1,v1为第一个正整数,设商为u/v=(q0q1...qm)b,余数为umodv=(r1r2......rn)b,其中u为正整数,v为正整数,r为余数,进行规范化试商,首先将被除数和除数放大:放大因子d=基b/(除数的最高组数v1+1)的整数部分,然后令u0u1u2……um+n<--u1u2……um+n*d,v1v2……vm+n<--v1v2……vn*d;在后面的试商过程中,不断地用(uj*b+uj+1)/v1的整数部分作为“初商”,看“初商”*v减去当前剩余的u的前n+1位后是否还超过v?如果超过,说明初商还不够,须加1;最后,余数要再除以放大因子d,结果才是真正的余数。
进一步地,所述大整数运算处理器在对大整数和一般整数进行计算时,先将一般整数转换为大整数,再调用大整数相应的算法进行计算;大整数“加减”运算是基础,乘除运算通过转换为加减运算完成,幂、模、余运算通过转换为乘除运算完成,得到相应的值。
进一步地,所述大整数的输出模块以文本文件形式将大整数输出到外存存储进行存储或输出到屏幕显示或打印机打印。
有益效果
本发明以大整数的“基”为标准进行分组和合组,以“数组”表达大整数,提高了计算机处理系统的数据处理能力和通用性。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明系统框图;
图2是本发明大整数的输出模块的读取大整数方法的逻辑关系表。
具体实施方式
下面结合附图1和图2对本发明的具体实施方式做进一步详细说明。
实施例,由图1和图2给出,本发明提供一种大整数算法的计算机处理系统,包括大整数的存储模块、大整数的输入与读取模块、大整数的输出模块、大整数运算处理器和结果处理器。所述大整数的存储模块和大整数的输入与读取模块分别与大整数运算处理器电性连接,大整数的输入与读取模块与大整数的存储模块电性连接,大整数运算处理器与结果处理器电性连接,结果处理器与大整数的输出模块电性连接。
所述大整数的存储模块对外部输入的大整数进行存储,大整数的存储分为两大方面:内存存储与外存存储。“数组”表达大整数的方式就是最好的内存存储大整数的方式。从高到低写入大整数的各值,先“分组”,各组之间以空格分隔,其中除做高组外,不足九位数指定的位数,高位用0补齐。“数组”的非0“最高位”是符号位,正整数的符号“+”用“-2”表示,负整数的符号“-”用“-1”表示,最高位以下各下标对应的数组变量分别是整数数据的“分组”。
例如输入正整数:+32910321028500250031
先分组(9位/组):+32 910321028 500250031
然后用数组表达:n[3]=-2;n[2]=32;n[1]=910321028;n[0]=500250031
这样,数组n就是大整数+32910321028500250031的本系统发明的表达。
采用字符串“存储”大整数也行,但最终需要转换为“数组”存储方式。外部存储大整数,一种方法是用数据库,另一种方式是用文本文件。采用文本文件形式,可以方便以后“大整数”文件的读取和数据转换。“大整数”按系统的大整数“基”为分组依据进行分组,即按如下形式分组大整数:+32 910321028 500250031,其中空格数不限,标准是一个空格”。
所述大整数的输入与读取模块,1、从键盘输入大整数,要求连续输入正负号及全部数字,数字之间可用空格分组,也可不分组;2、从文本文件中读取大整数,系统将自动检查与自动按标准分组,按标准大整数表达方式读取数据信息。
所述大整数的输出模块,系统将以大整数“基”为标准进行合组,输出到文本文件进行存储,或输出到屏幕显示或打印机打印,其中每组数中不足9位的,用0补齐,各组之间用空格分隔。
本发明的大整数算法的计算机处理系统默认的大整数基“基”为1000000000,即9位整数为一组,其中非0“最高位”是符号位,“-2”表示正整数的符号“+”,“-1”表示负整数的符号“-”,最高位以下各下标对应的数组变量分别是整数数据的“分组”,将所述大整数运算处理器处理的大整数进行输出。
如内存中的大整数“n[3]=-2,n[2]=123456,n[1]=12345678,n[0]=1”,输出形式为:“+000123456 012345678 000000001”,而不是“+123456123456781”,其目的是,前者去掉空格后就是大整数本身,既直观又方便。
所述大整数运算处理器,用于对大整数的输入模块输入的大整数数据进行计算;
所述结果处理器,用于对计算处理器计算所得的值转换为字符串进行输出。
所述大整数的存储模块的存储方法为:创建新文件,根据大整数的符号位数值,向文件中写入+或-号,从高到低写入大整数的各值,各组之间采用空格分隔,其中除做高组外,不足九位数指定的位数,高位用0补齐。
所述大整数的输出模块的读取大整数方法为:初始化,临时数值型数组,容量为9999,读取文件首个非空字符,如果为+,说明为正数,如果为-,说明为负数,读取以下数据到tempLine,将读取的数据行tempLine按空格数字串赋值到多字符串数组中,数据长度超过临时数组的剩余容量,当超过临时数组剩余容量时,根据数据长度扩大临时数组的容量,将字符串数组中的数据逐个写入到大整数数组中,读下一个数据行到tempLine,将临时数组中的数据按顺利连续地导入到大整数数组中,并保证最低一组数据存放在下标为0的数组单元中,如图2所示。
所述大整数运算处理器在对大整数和一般整数进行计算时,需先将一般整数转换为大整数,再调用大整数相应的算法即可。
所述大整数运算处理器大整数的模、余算法采用:正整数u=(u1u2......um+n)和v=(v1v2......vn)b,基数为b,这里v1>0,且n>1,v1为第一个正整数,设商为u/v=(q0q1...qm)b,余数为umodv=(r1r2......rn)b,u为正整数,v为正整数,r为余数,为了试商的规范化,首先将被除数和除数放大:放大因子d=基b/(除数的最高组数v1+1)的整数部分,然后令u0u1u2……um+n<--u1u2……um+n*d,v1v2……vm+n<--v1v2……vn*d;在以后的试商过程中,不断地用(uj*b+uj+1)/v1的整数部分作为“初商”,看“初商”*v减去当前剩余的u的前n+1位后是否还超过v?如果超过,说明初商还不够,须加1;最后,余数要注意再除以放大因子d,结果才是真正的余数。
本发明使用时,在一般整数的运算处理原理的基础上,将原理推广应用到“大整数”运算体系中处理能力强,微软最新版的计算器的大整数精确位数仅为32位,而本系统大整数处理位数几乎没有限制,主要受限于计算机的内存,运算速度快,处理1024位(2进制位)即308位十进制数的加密与解密过程仅需1秒钟的时间;处理几万位的加法只须0.1秒时间,使用方便,系统采用代号表示大整数,方便用户使用命令进行处理。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种大整数算法的计算机处理系统,其特征在于:其包括大整数的存储模块、大整数的输入与读取模块、大整数的输出模块、大整数运算处理器和结果处理器,所述大整数的存储模块和大整数的输入与读取模块分别与大整数运算处理器电性连接,大整数的输入与读取模块与大整数的存储模块电性连接,大整数运算处理器与结果处理器电性连接,结果处理器与大整数的输出模块电性连接,
所述大整数的存储模块对外部输入的大整数进行存储,包括内存存储与外存存储,所述内存存储大整数的方式用“数组”表达,从高到低写入大整数的各值,先“分组”,各组之间以空格分隔,其中除做高组外,不足九位数指定的位数,高位用0补齐,“数组”的非0“最高位”是符号位,正整数的符号“+”用“-2”表示,负整数的符号“-”用“-1”表示,最高位以下各下标对应的数组变量分别是整数数据的“分组”;
所述大整数的输入与读取模块将大整数先后输入至所述大整数的存储模块与大整数运算处理器,并从大整数的存储模块内的文本文件中读取大整数;
所述大整数运算处理器对所述大整数的输入与读取模块输入的大整数数据进行计算;
所述结果处理器将大整数运算处理器计算所得的值转换为字符串,并进行输出;所述大整数的输出模块以大整数的“基”为标准进行合组,所述大整数的“基”为1000000000,即9位整数为一组,其中除做高组外,不足九位数指定的位数,高位用0补齐,各组之间用空格分隔,其非0“最高位”是符号位,“-2”表示正整数的符号为“+”,“-1”表示负整数的符号为“-”,将所述大整数运算处理器处理的大整数进行输出。
2.根据权利要求1所述的计算机处理系统,其特征在于:所述输入模块从键盘输入大整数,要求连续输入正号或负号及全部数字,数字之间用空格实现分组。
3.根据权利要求2所述的计算机处理系统,其特征在于:所述外存存储大整数采用数据库形式或是采用文本文件形式。
4.根据权利要求3所述的计算机处理系统,其特征在于:所述内存存储大整数采用字符串“存储”大整数,最终转换为“数组”存储方式。
5.根据权利要求4所述的计算机处理系统,其特征在于:所述大整数的输出模块的读取大整数方法为:初始化:临时数值型数组,容量为9999,读取文件首个非空字符,如果为+,说明为正数,如果为-,说明为负数,读取以下数据到tempLine,将读取的数据行tempLine按空格数字串赋值到多字符串数组中,数据长度超过临时数组的剩余容量,当超过临时数组剩余容量时,根据数据长度扩大临时数组的容量,将字符串数组中的数据逐个写入到大整数数组中,读下一个数据行到tempLine,将临时数组中的数据按顺序连续地导入到大整数数组中,并保证最低一组数据存放在下标为0的数组单元中。
6.根据权利要求5所述的计算机处理系统,其特征在于:所述大整数运算处理器大整数的模、余算法如下:正整数u=(u1u2......um+n)和v=(v1v2......vn)b,基数为b,这里v1>0,且n>1,v1为第一个正整数,设商为u/v=(q0q1...qm)b,余数为umodv=(r1r2......rn)b,其中u为正整数,v为正整数,r为余数,进行规范化试商,首先将被除数和除数放大:放大因子d=基b/(除数的最高组数v1+1)的整数部分,然后令u0u1u2……um+n<--u1u2……um+n*d,v1v2……vm+n<--v1v2……vn*d;在后面的试商过程中,不断地用(uj*b+uj+1)/v1的整数部分作为“初商”,看“初商”*v减去当前剩余的u的前n+1位后是否还超过v?如果超过,说明初商还不够,须加1;最后,余数要再除以放大因子d,结果才是真正的余数。
7.根据权利要求6所述的计算机处理系统,其特征在于:所述大整数运算处理器在对大整数和一般整数进行计算时,先将一般整数转换为大整数,再调用大整数相应的算法进行计算;大整数“加减”运算是基础,乘除运算通过转换为加减运算完成,幂、模、余运算通过转换为乘除运算完成,得到相应的值。
8.根据权利要求7所述的计算机处理系统,其特征在于:所述大整数的输出模块以文本文件形式将大整数输出到外存存储进行存储或输出到屏幕显示或打印机打印。
CN202110696629.4A 2021-06-23 2021-06-23 一种大整数算法的计算机处理系统 Withdrawn CN113485674A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110696629.4A CN113485674A (zh) 2021-06-23 2021-06-23 一种大整数算法的计算机处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110696629.4A CN113485674A (zh) 2021-06-23 2021-06-23 一种大整数算法的计算机处理系统

Publications (1)

Publication Number Publication Date
CN113485674A true CN113485674A (zh) 2021-10-08

Family

ID=77937617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110696629.4A Withdrawn CN113485674A (zh) 2021-06-23 2021-06-23 一种大整数算法的计算机处理系统

Country Status (1)

Country Link
CN (1) CN113485674A (zh)

Similar Documents

Publication Publication Date Title
CN107592116B (zh) 一种数据压缩方法、装置及存储介质
US11922021B2 (en) Arrangements for storing more data in memory when using a hierarchical memory structure
CN105634499B (zh) 一种基于新短浮点型数据的数据转换方法
US5572207A (en) Method and apparatus for numeric-to-string conversion
US6396420B1 (en) Delta compression of floating point coordinate data
CN113076083B (zh) 数据乘加运算电路
US20170192747A1 (en) Information processing apparatus and decimal number conversion method
CN114268323B (zh) 支持行存的数据压缩编码方法、装置及时序数据库
JPH1132328A (ja) 多値画像データにおけるデータ圧縮方法、データ圧縮装置および記録媒体
WO2015116762A1 (en) Optimized data condenser and method
CN104572994A (zh) 用于搜索数据的方法和装置
CN113485674A (zh) 一种大整数算法的计算机处理系统
JPH03204234A (ja) 圧縮データ復元方法
JPS60254324A (ja) 浮動小数点数の指数範囲拡張方法
Ruan et al. Left-to-right optimal signed-binary representation of a pair of integers
US6232894B1 (en) Reproducible data conversion and/or compression method of digital signals and a data converter and a digital computer
JP2541758B2 (ja) 剰余算出回路
CN114595665A (zh) 一种二进制极短码字符词编码集的构建方法
US6384748B1 (en) Method of encoding numeric data and manipulating the same
WO2024186229A1 (en) Data compression method and apparatus
JP3113765B2 (ja) 可変長符号デコード回路
CN114296801A (zh) 一种点云文本格式快速读取与写入方法
CN108829649B (zh) 基于hbase键值索引的复杂类型编码序列化算法的实现方法
CN116594954A (zh) 一种通用存内矩阵运算引擎及其操作方法
CN115344823A (zh) 一种并行查找表实现具有饱和特性非线性函数求解的方法

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20211008