双码进位计数制的实现方法及其应用的制作方法

文档序号:6576791阅读:308来源:国知局
专利名称:双码进位计数制的实现方法及其应用的制作方法
技术领域
本发明涉及数据传输和信息存储技术领域,特别是一种双码进位计数制的 实现方法及应用。
背景技术
人类发明进位计数制以后,采用数码集合(0,1,2,…,9)共IO个元素,可表 示10种进制;采用数码集合(0,1,2,…,9,A,B,…,F)共16个元素,可表示16 种进制。这些数码集合的元素都是单字数码,简称单码集,用单码集表示的进 位制称为单码进位计数制。由于不同的单字数码有限,所以单码集能表示的进 制数量已经不能满足实际需要。目前常用的进制只限于2进制、8进制、10进 制和16进制,而客观上人们在不知不觉中涉及到的进制远不只这些。比如,用 来表示时间的"年月日时分秒"就用到五种不同的进制年用100进制,满100 为一个世纪,月用12进制,日为30或31进制,时为24进制,分和秒为60进 制;又如平面角度中的分、秒也都是60进制;再如重量单位的公斤、克都是 1000进制;还有长度、面积、体积、质量等许多计量单位中都存在不同的进制。 但迄今为止,还没有一种比较理想的、用于表示更多进制,尤其是高进制数据 的方法,更谈不上对高进制数据的转换。所谓高进制是指大于百进制的进位计 数制,如千进制、万进制等,传统的进位计数制每个数位上的数码是单码,即 一个数码。表示十进数需要10个不同的数码,表示N进制需要N个不同的数码。要实现万进制则需要ioooo个不同的数码,显然,采用单码实现高进制是件难 事。
如今,人类已进入数字化时代,数字在人们的生活和工作中无处不在,无 事不用,数据的传输和存储已成为各种社会活动中不可或缺内容。应该说,社 会的进步和发展,计数不仅需要更多的进制,而且需要更高的进制,而单码进 位计数制无能为力,双码可使进制数量按几何级数增加,这便是发明双码进位 计数制的社会需求和背景技术。

发明内容
本发明的目的是提供一种双码进位计数制的实现方法及应用,它能够使可
用进制超万种,实现14400种进位计数制的转换,并用于交互式工具万种进制 转换器中。
本发明通过以下技术方案实现上述目的通过采用120个ASCII码字符动 态构成一个双字数码集合{00,01,02,…,09,0A,…,M},简称双码集合。双码 集合中含有14400个双码元素,可表示14400种进位计数制。用双码集合中的 元素表示的进位计数制,每个数位上的数码是双码,称为双码进制表示法,这 种进制称为双码进位计数制。
所述120个ASCII码字符中有91个可见字符,29个不可见字符。
91个可见字符如下
0123456789ABCDEFGHIJKL丽0PQRSTUVWXYZabcdefghijklmnopqrstuvwxyz、 !鹏$%、()-+_=|/[] {};:,,〈〉?
29个不可见字符如下
ASCII码值4,2,......,8,共8个;ASCII码值=11, 12,共2个;
ASCII码值=14, 15,......,25,共12个;
ASCII码值二27, 28, 29, 32, 38, 127, 128,共7个。
所述29个不可见字符作为内码,在传输和存储时使用,另选用29个拼音
字母作为外码,供显示和打印时使用。
所述29个夕卜石马为5dfi66666e6eel i I i QiKKifiiHKlUearfrfi
双码表示法用2位可表示的十进制数最大值为14399, 4位可表示的十进制
数最大值为207359999, 6位可表示的十进制数最大值为2985983999999。 例①、6A(14400进制2位)=14399(10进制5位), 例②、MMi(14400进制4位)=207359999 (10进制9位), 例③、MnMiaa (14400进制6位)=2985983999999 (10进制13位)。 考虑与二、八、十、十六等进制的兼容性,将120个ASCII码字符构成一
个单码集合,换成外码集合为(0,1,2,…,9,A,…,Ah单码集合与双码集合并
用,解决了单码进制与双码进制容性问题。 万种进制转换法
万种进制转换法内部完成三个转换①不同进制转换,②单码、双码转换, ③内码、外码转换。用户只需提供三个数据源,即可得到所要的目标数值。数 据源为源进制、源数值和目标进制。
转换法采用一般教科书中关于"非十进制转十进制"和"十进制转非十进 制"的原理,编程实现"非十转十"和"十转非十"两个软件函数。对于非十
到十或十到非十的转换,分别调用这两个函数;对于非十到非十的转换,则先 调用"非十转十",再调用"十转非十"。转换中根据进制决定单码与双码的选用,转换前后要进行内码、外码的映射,这就是万种进制转换法的全部。 本发明的有益效果在于
双码进位计数制主要用于按字符型表达的数据传输和存储。用于传输,可 使传输速度提高到原来的2倍;用于存储,可使存储容量减少到原来的1/2。 应用领域广泛,可用于各种网络和控制系统的数据传输,如广域网、局域网, 航天、航空、航海等控制系统;也可用于各行业数据库的信息存储,如银行、 保险、股市、档案馆、图书馆、物资库、……、等数据信息的存储。


图1是本发明所述的双码进位计数制的实现方法用于万种进制转换器的用 户界面图。
具体实施例方式
以下通过具体实施例对本发明的技术方案作进一步描述。
实施例l
编程方式
提供一个接口函数,供编程使用。调用格式如下
目标数值内码=万种进制转换法(源进制,源数值,目标进制,目标数值外 码[,目标小数位])
此函数返回数据的类型为字符型,目标小数位是可选参数,如果被转换数 据有小数,此参数用于指明转换后需要保留的小数位数。
例如,有十进制数207359999,用14400进制进行发送或存储,调用形如

发送或写盘前目标数值内码=万种进制转换法(10, 207359999, 14400,目标数值外码)
得到结果为目标数值外码^MM 目标数值内码^Mfl对应的内码
接收或读盘后目标数值内码=万种进制转换法(14400, MM, 10,目标数
值外码)
得到结果为目标数值外码二207359999 目标数值内码=207359999。 目标进制为10时,目标数值外码与目标数值内码相同。 实施例2 交互方式
对照图1,本发明所述的双码进位计数制实现方法在万种进制转换器的应
用,提供了一款实用的交互式工具,其实现方法如下
采用VisualBasic6. O编程,
第一步将所述120个ASCII码字符构成单码集合,并将所述29个不可见
字符换为所述29个拼音字母作为外码;
第二步将第一步所述单码集合中的元素循环组合构成双码集合;
第三步如果"源进制"是非十进制,则调用"非十转十",得到十进制数。
第四步如果"目标进制"是非十进制,则调用"十转非十",将第三步得
到的十进制数再进行转换,得到非十进数作为目标数值外码,将其转换为内码
作为目标数值内码;否则,将第三步所得到的十进制数作为目标数值内码和目
标数值外码。
两个基本函数"非十转十"和"十转非十"采用一般教科书中的原理实现, 单码与双码的选用也是在这两个函数的内部完成。两个函数的基本算法如下 ①非十转十算法为把非十进制数按权展开,然后逐项求和(即求各次幂之和)。对于 任一种J进制数S可表示为下式
S=± (Sw广十Sn—2广+…十Sj'十S。J。+ S一uT+…十S—J"
式中的小写s表示各数位上的数码,其取值范围为O到J-1,其下标n-l, n-2,…,1,0,-l,…,-m为数位的编号;J为计数制的基数,上标 n-1, n-2,…,1, 0, -1,…,-m表示基数的幂次。 ②十转非十
算法为整数部分采用"除基数取余法",小数部分采用"乘基 数取整法"。
应用实例
例如将14400进制数AfififiAfi转换为10进制数,得到 2985983999999,其操作步骤如下 在戶万述万种进制转换器上,
1、 在键盘上输入源进制14400
2、 单击按钮,输入源数值AMAM;
3、 在键盘上输入目标进制10;
4、 按"转换"按钮,得到目标数值2985983999999。
权利要求
1、一种双码进位计数制的实现方法,其特征在于,它采用120个ASCII码字符动态构成一个双字数码集合00,01,02,…,09,0 A,…, ,简称双码集合;双码集合中含有14400个双码元素,能够表示14400种进位计数制;用双码集合中的元素表示的进位计数制,每个数位上的数码是双码,称为双码进制表示法,这种进制称为双码进位计数制。
2、 根据权利要求1所述的双码进位计数制的实现方法,其特征在于,所述 120个ASCII码字符中有91个可见字符,29个不可见字符。91个可见字符如下0123456789ABCDEFGHIJKL,0PQRSTUVWXYZabcdefghijklmnopqrstuvwxyz、 !鹏$%、()-+—二|/[] {};:,,〈〉?29个不可见字符如下ASCII码值4,2,......,8,共8个;ASCII码值=11, 12,共2个;ASCII码值=14, 15,……,25,共12个;ASCII码值=27, 28, 29, 32, 38, 127, 128,共7个;所述29个不可见字符作为内码,在传输和存储时使用,另选用29个拼音 字母作为外码,供显示和打印时使用;所述29个夕卜石马为5c^d6666g6eM i i i QiitiMliifiuUdamft。
3、 根据权利要求1所述的双码进位计数制的实现方法,其特征在于,将所 述120个ASCII码字符构成一个单码集合,换成外码集合为0, 1, 2,…,9, A,…,A,单码集合与双码集合并用。
4、权利要求l所述的双码进位计数制实现方法的应用,其特征在于,用于 实现万种进制转换器的方法步骤如下第一步将所述120个ASCII码字符构成单码集合,并将所述29个不可见字符换为所述29个拼音字母作为外码;第二步将第一步所述单码集合中的元素循环组合构成双码集合; 第三步如果"源进制"是非十进制,则调用"非十转十",得到十进数; 第四步如果"目标进制"是非十进制,则调用"十转非十",得到非十进数作为目标数值外码,将其转换为内码作为目标数值内码;否则,将第三步所得到的十进制数作为目标数值内码和目标数值外码。
全文摘要
一种双码进位计数制的实现方法及应用,它采用120个ASCII码字符动态构成一个双字数码集合00,01,02,…,09,0A,…,nn,简称双码集合;双码集合中含有14400个双码元素,能够表示14400种进位计数制;用双码集合中的元素表示的进位计数制,每个数位上的数码是双码,称为双码进制表示法,这种进制称为双码进位计数制;采用本发明所述双码进位计数制的实现方法,使得可用进制超万种;采用所述万种进制转换法,实现了14400种进位计数制的转换,并应用于交互式工具万种进制转换器当中。
文档编号G06F7/48GK101482806SQ20091011382
公开日2009年7月15日 申请日期2009年1月16日 优先权日2009年1月16日
发明者兰 戴, 戴振喜 申请人:戴振喜
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1