進制轉換及應用

進制轉換及應用

ID:21737085

大?。?03.50 KB

頁數(shù):11頁

時間:2018-10-24

進制轉換及應用_第1頁
進制轉換及應用_第2頁
進制轉換及應用_第3頁
進制轉換及應用_第4頁
進制轉換及應用_第5頁
資源描述:

《進制轉換及應用》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。

1、Jsoi2008春季函授(B1)進制轉換及應用常州市第一中學林厚從一、引言計算機的一個重要理論基礎就是二進制思想。任何信息最終都是以二進制數(shù)的形式存儲在計算機中的,在計算機中有時還用到十六進制和八進制。所以,在實際應用中,經(jīng)常需要將一個十進制數(shù)轉換成二進制、八進制或十六進制的數(shù),有時又需逆向轉換,將二進制、八進制或十六進制的數(shù)轉換成十進制數(shù),有時還需要在二進制、八進制和十六進制數(shù)之間進行相互轉換(2,8,10,16等一般稱為“基”)。不同進制數(shù)之間轉換的基本算法是:(1)十進制整數(shù)轉換成n進制數(shù)的方法:將十進制整數(shù)不斷除以n取余,最后反序輸出即可

2、。(2)n進制數(shù)(整數(shù)、實數(shù)都可以)轉換成十進制數(shù)方法:按“權n”展開,即表示成若干項形如ai*ni的累加和即可。(3)二進制、八進制、十六進制之間的轉換方法:利用3位二進制表示1位八進制數(shù),4位二進制數(shù)表示1位十六進制數(shù)的基本思想,3位一段(或4位一段)分別轉換即可。注:一般2≤n≤16,十進制以上、十六進制以下的數(shù)制除了0~9十個字符外,還用到A、B、C、D、E、F幾個字符,分別表示10~15。對于十進制,我們稱它的基數(shù)為10,而二進制的基數(shù)就是2,十六進制的基數(shù)就是16。對于十進制數(shù)1234.56,我們可以表示成1*103+2*102+3*

3、101+4*100+5*10-1+6*10-2,我們把10i稱之為十進制各個位的“權”。對于二進制數(shù)11001.01001,我們也可以類似地表示成1*24+1*23+1*20+1*2-2+1*2-5,即二進制各個位的權為2i。這一方法(按權展開)同樣可以用在任意n進制中。二、不同進制數(shù)之間的相互轉換1、十進制正整數(shù)轉換成任意n進制數(shù)[方法介紹]就是模擬小學學過的除法運算,比如要把十進制整數(shù)39轉換成二進制數(shù),則轉換方法如下左圖,即不斷除以2,直到商為0,再倒序輸出即可,結果一般表示為(39)10=(100111)2。而要把十進制整數(shù)245轉換成八

4、進制數(shù),方法一樣,只要不斷地除以8即可,如下右圖所示,結果可以表示為:(245)10=(365)8。一定要注意的是“倒序輸出”。圖1十進制整數(shù)轉換成n進制方法示意圖[算法描述]設十進制數(shù)為Y,要轉換成n進制,用數(shù)組a存放最后的轉換結果,i為數(shù)組下標,則算法描述如下: i:=0;重復做:     i:=i+1;     a[i]:=Y modn-11-Jsoi2008春季函授(B1)    ?。?=?。佟ivn直到Y=0為止。依次輸出最高位a[i]到最低位a[1]。[參考程序]將十進制整數(shù)Y轉換成任意n進制數(shù)(設n<10)。Programex1(

5、input,output);vara:array[1..100]ofinteger;n,y,i,j:longint;beginwrite('inputnumbery:');readln(y);write('inputnumbern:');readln(n);write('(',y,')10=','(');i:=0;repeati:=i+1;a[i]:=ymodn;y:=ydivn;untily=0;forj:=idownto1dowrite(a[j]);writeln(')',n);readlnend.[程序樣例]輸入:2458輸出:(245)1

6、0=(365)8[思考練習]如果n超過了10,比如要轉換成十六進制數(shù),可以用字符A、B、C、D、E、F分別表示數(shù)10~15,轉換方法一樣,只要在輸出時把余數(shù)轉換為字符(A~F)即可。這個程序請大家完成。2、任意n進制數(shù)(整數(shù)、實數(shù))轉換成十進制數(shù)[方法介紹]我們知道一個十進制數(shù)1234.56,按權展開可以表示成1*103+2*102+3*101+4*100+5*10-1+6*10-2,同樣,對于任意n進制數(shù)X,按權展開的方法是:(1101.01)2=1*23+1*22+0*21+1*20+0*2-1+1*2-2=8+4+0+1+0+0.25=13

7、.25(165)8=1*82+6*81+5*80=64+48+5=117這兒計算出來的13.25和117就是(1101.01)2和(165)8所對應的十進制數(shù)。[參考程序]將任意n進制整數(shù)X轉換成十進制數(shù)(設n<10)。Programex2(input,output);-11-Jsoi2008春季函授(B1)constm=100;varstr:string;n,i,weight,total:longint;a:array[1..m]ofinteger;beginwrite('inputnumbern:');readln(n);write('inp

8、utnumberx:');readln(str);write('(',str,')',n,?'=(');fori:=1toLength(

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。