專利名稱:雙碼進位計數制的實現方法及其應用的制作方法
技術領域:
本發(fā)明涉及數據傳輸和信息存儲技術領域,特別是一種雙碼進位計數制的 實現方法及應用。
背景技術:
人類發(fā)明進位計數制以后,采用數碼集合(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個不同的數碼,顯然,采用單碼實現高進制是件難 事。
如今,人類已進入數字化時代,數字在人們的生活和工作中無處不在,無 事不用,數據的傳輸和存儲已成為各種社會活動中不可或缺內容。應該說,社 會的進步和發(fā)展,計數不僅需要更多的進制,而且需要更高的進制,而單碼進 位計數制無能為力,雙碼可使進制數量按幾何級數增加,這便是發(fā)明雙碼進位 計數制的社會需求和背景技術。
發(fā)明內容
本發(fā)明的目的是提供一種雙碼進位計數制的實現方法及應用,它能夠使可
用進制超萬種,實現14400種進位計數制的轉換,并用于交互式工具萬種進制 轉換器中。
本發(fā)明通過以下技術方案實現上述目的通過采用120個ASCII碼字符動 態(tài)構成一個雙字數碼集合{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單碼集合與雙碼集合并
用,解決了單碼進制與雙碼進制容性問題。 萬種進制轉換法
萬種進制轉換法內部完成三個轉換①不同進制轉換,②單碼、雙碼轉換, ③內碼、外碼轉換。用戶只需提供三個數據源,即可得到所要的目標數值。數 據源為源進制、源數值和目標進制。
轉換法采用一般教科書中關于"非十進制轉十進制"和"十進制轉非十進 制"的原理,編程實現"非十轉十"和"十轉非十"兩個軟件函數。對于非十
到十或十到非十的轉換,分別調用這兩個函數;對于非十到非十的轉換,則先 調用"非十轉十",再調用"十轉非十"。轉換中根據進制決定單碼與雙碼的選用,轉換前后要進行內碼、外碼的映射,這就是萬種進制轉換法的全部。 本發(fā)明的有益效果在于
雙碼進位計數制主要用于按字符型表達的數據傳輸和存儲。用于傳輸,可 使傳輸速度提高到原來的2倍;用于存儲,可使存儲容量減少到原來的1/2。 應用領域廣泛,可用于各種網絡和控制系統的數據傳輸,如廣域網、局域網, 航天、航空、航海等控制系統;也可用于各行業(yè)數據庫的信息存儲,如銀行、 保險、股市、檔案館、圖書館、物資庫、……、等數據信息的存儲。
圖1是本發(fā)明所述的雙碼進位計數制的實現方法用于萬種進制轉換器的用 戶界面圖。
具體實施例方式
以下通過具體實施例對本發(fā)明的技術方案作進一步描述。
實施例l
編程方式
提供一個接口函數,供編程使用。調用格式如下
目標數值內碼=萬種進制轉換法(源進制,源數值,目標進制,目標數值外 碼[,目標小數位])
此函數返回數據的類型為字符型,目標小數位是可選參數,如果被轉換數 據有小數,此參數用于指明轉換后需要保留的小數位數。
例如,有十進制數207359999,用14400進制進行發(fā)送或存儲,調用形如
下
發(fā)送或寫盤前目標數值內碼=萬種進制轉換法(10, 207359999, 14400,目標數值外碼)
得到結果為目標數值外碼^MM 目標數值內碼^Mfl對應的內碼
接收或讀盤后目標數值內碼=萬種進制轉換法(14400, MM, 10,目標數
值外碼)
得到結果為目標數值外碼二207359999 目標數值內碼=207359999。 目標進制為10時,目標數值外碼與目標數值內碼相同。 實施例2 交互方式
對照圖1,本發(fā)明所述的雙碼進位計數制實現方法在萬種進制轉換器的應
用,提供了一款實用的交互式工具,其實現方法如下
采用VisualBasic6. O編程,
第一步將所述120個ASCII碼字符構成單碼集合,并將所述29個不可見
字符換為所述29個拼音字母作為外碼;
第二步將第一步所述單碼集合中的元素循環(huán)組合構成雙碼集合;
第三步如果"源進制"是非十進制,則調用"非十轉十",得到十進制數。
第四步如果"目標進制"是非十進制,則調用"十轉非十",將第三步得
到的十進制數再進行轉換,得到非十進數作為目標數值外碼,將其轉換為內碼
作為目標數值內碼;否則,將第三步所得到的十進制數作為目標數值內碼和目
標數值外碼。
兩個基本函數"非十轉十"和"十轉非十"采用一般教科書中的原理實現, 單碼與雙碼的選用也是在這兩個函數的內部完成。兩個函數的基本算法如下 ①非十轉十算法為把非十進制數按權展開,然后逐項求和(即求各次冪之和)。對于 任一種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碼字符動態(tài)構成一個雙字數碼集合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個拼音字母作為外碼;第二步將第一步所述單碼集合中的元素循環(huán)組合構成雙碼集合; 第三步如果"源進制"是非十進制,則調用"非十轉十",得到十進數; 第四步如果"目標進制"是非十進制,則調用"十轉非十",得到非十進數作為目標數值外碼,將其轉換為內碼作為目標數值內碼;否則,將第三步所得到的十進制數作為目標數值內碼和目標數值外碼。
全文摘要
一種雙碼進位計數制的實現方法及應用,它采用120個ASCII碼字符動態(tài)構成一個雙字數碼集合00,01,02,…,09,0A,…,nn,簡稱雙碼集合;雙碼集合中含有14400個雙碼元素,能夠表示14400種進位計數制;用雙碼集合中的元素表示的進位計數制,每個數位上的數碼是雙碼,稱為雙碼進制表示法,這種進制稱為雙碼進位計數制;采用本發(fā)明所述雙碼進位計數制的實現方法,使得可用進制超萬種;采用所述萬種進制轉換法,實現了14400種進位計數制的轉換,并應用于交互式工具萬種進制轉換器當中。
文檔編號G06F7/48GK101482806SQ20091011382
公開日2009年7月15日 申請日期2009年1月16日 優(yōu)先權日2009年1月16日
發(fā)明者蘭 戴, 戴振喜 申請人:戴振喜