版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《數(shù)的進制轉(zhuǎn)換系統(tǒng)》</p><p> 程序設(shè)計基礎(chǔ)課程設(shè)計報告</p><p> 專 業(yè): 電子信息工程 </p><p> 班 級: </p><p> 姓 名: </p><p> 學
2、 號: </p><p> 指導(dǎo)教師: </p><p> 二O一一 年 2 月 2 日</p><p> 目 錄</p><p> 1 課程設(shè)計目的3</p><p> 2 課程設(shè)計題目描述和要求3<
3、/p><p> 2.1課程設(shè)計題目3</p><p> 2.2課程設(shè)計基本要求3</p><p> 3課程設(shè)計報告的實驗內(nèi)容4</p><p> 3.1系統(tǒng)功能框架4</p><p> 3.2二、八、十六進制數(shù)轉(zhuǎn)換到十進制數(shù)4</p><p> 4課程設(shè)計的源文件代碼8<
4、;/p><p> 5課程設(shè)計的實驗結(jié)果9</p><p><b> 6課程設(shè)計總結(jié)9</b></p><p><b> 7參考書目10</b></p><p><b> 1 課程設(shè)計目的</b></p><p> 通過以前的學習以及查看相關(guān)資
5、料,按著題目要求編寫程序,進一步加強對編程的訓(xùn)練,使得自己掌握一些將書本知識轉(zhuǎn)化為實際應(yīng)用當中.驗證自己半年來的學習成果!</p><p> 2 課程設(shè)計題目描述和要求</p><p><b> 2.1課程設(shè)計題目</b></p><p> 題目:數(shù)的進制轉(zhuǎn)換系統(tǒng)</p><p> 2.2課程設(shè)計基本要求<
6、/p><p> 1、 將輸入的2進制數(shù)(一個非“0”即“1”的字符串)化為10進制數(shù)。</p><p> 提示:用字符數(shù)組a盛放所輸入的二進制數(shù);而后從后往前逐一計算每一位的“位權(quán)”w (2的0次方、2的1次方、...),再計算“位權(quán)”乘以“位值”并累 加到一個初值為0的變量value上,最后輸出該value 。</p><p> 2、 如何把8進制數(shù)或
7、16進制數(shù)化為10進制數(shù)。</p><p> 3、 如何把某一個k進制的數(shù)化為10進制數(shù)呢?</p><p> 4、 要求輸入一個K進制數(shù)字通過程序轉(zhuǎn)換成一個10進制數(shù)</p><p> 3課程設(shè)計報告的實驗內(nèi)容</p><p> 不同進位計數(shù)制之間的轉(zhuǎn)換原則:不同進位計數(shù)制之間的轉(zhuǎn)換是根據(jù)兩個有理數(shù)如相等,則兩數(shù)的整數(shù)和分數(shù)部分一定
8、分別相等的原則進行的。也就是說,若轉(zhuǎn)換前兩數(shù)相等,轉(zhuǎn)換后仍必須相等。</p><p><b> 3.1系統(tǒng)功能框架</b></p><p> 3.2二、八、十六進制數(shù)轉(zhuǎn)換到十進制數(shù) </p><p> 十進制:有10個基數(shù):0 ~~ 9 ,逢十進一</p><p> 二進制:有2 個基數(shù):0 ~~ 1 ,逢二進一
9、</p><p> 八進制:有8個基數(shù):0 ~~ 7 ,逢八進一</p><p> 十六進制:有16個基數(shù):0 ~~ 9,A,B,C,D,E,F(xiàn),(A=10,B=11,C=12,D=13,E=14,F=15) ,逢十六進一</p><p> K進制:有K個基數(shù):0~~K-1,逢K進一</p><p> 3.2.1二進制數(shù)轉(zhuǎn)換為十進制數(shù)
10、 二進制數(shù)第0位的權(quán)值是2的0次方,第1位的權(quán)值是2的1次方…… 所以,設(shè)有一個二進制數(shù):0110 0100,轉(zhuǎn)換為10進制為: 下面是豎式: 0110 0100 換算成 十進制 第0位 0 * 20 = 0 第1位 0 * 21 = 0 第2位 1 * 22 = 4 第3位 0 * 23 = 0 第4位 0 * 24 = 0 第5位 1 * 25 = 32 第6位 1 * 26 =
11、64 第7位 0 * 27 = 0 + --------------------------- 100 用橫式計算為: 0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100 0乘以多少都是0,所以我們也可以直接跳過值為0的位: 1 * 22 + 1 * 23 + 1 * 25 + 1 * 26 = 100
12、 3.2.2 八進制數(shù)轉(zhuǎn)換為十進制數(shù) </p><p> 八進制就是逢8進1。 八進制數(shù)采用 0~7這八數(shù)來表達一個數(shù)。 八進制數(shù)第0位的權(quán)值為8的0次方,第1位權(quán)值為8的1次方,第2位權(quán)值為8的2次方…… 所以,設(shè)有一個八進制數(shù):1507,轉(zhuǎn)換為十進制為: 用豎式表示: 1507換算成十進制。 第0位 7 * 80 = 7 第1位 0 * 81 = 0 第2位
13、5 * 82 = 320 第3位 1 * 83 = 512 + -------------------------- 839 同樣,我們也可以用橫式直接計算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839 結(jié)果是,八進制數(shù) 1507 轉(zhuǎn)換成十進制數(shù)為 839 3.2.3十六進制數(shù)轉(zhuǎn)換成十進制數(shù) </p><p> 2進制,用兩個阿拉伯
14、數(shù)字:0、1; 8進制,用八個阿拉伯數(shù)字:0、1、2、3、4、5、6、7; 10進制,用十個阿拉伯數(shù)字:0到9; 16進制,用十六個阿拉伯數(shù)字……等等,阿拉伯人或說是印度人,只發(fā)明了10個數(shù)字啊? 16進制就是逢16進1,但我們只有0~9這十個數(shù)字,所以我們用A,B,C,D,E,F(xiàn)這五個字母來分別表示10,11,12,13,14,15。字母不區(qū)分大小寫。 十六進制數(shù)的第0位的權(quán)值為16的0次方,第1位的權(quán)值為16
15、的1次方,第2位的權(quán)值為16的2次方…… 所以,在第N(N從0開始)位上,如果是是數(shù) X (X 大于等于0,并且X小于等于 15,即:F)表示的大小為 X * 16的N次方。 假設(shè)有一個十六進數(shù) 2AF5, 那么如何換算成10進制呢? 用豎式計算: 2AF5換算成10進制: 第0位: 5 * 160 = 5 第1位: F * 161 = 240 第2位: A * 162 = 2560 第3位: 2
16、* 163 = 8192 + ---------------------------------</p><p> 本程序主要是通過輸入一個K進制的數(shù)組a,字符串長度為80,通過輸入a[i]的大小,運用for、if的選擇性語句,來輸出相應(yīng)的十進制數(shù)結(jié)果。</p><p> 4課程設(shè)計的源文件代碼</p><p> #include <iostream
17、></p><p> #include <cmath></p><p> #include <string></p><p> using namespace std;</p><p> void main()</p><p><b> {</b></
18、p><p> char a[80];</p><p> int i,p=1,m,n=0,k;</p><p> cout<<"請設(shè)定要轉(zhuǎn)化的進制位數(shù):"<<endl;</p><p><b> cin>>k;</b></p><p>
19、cout<<"輸入一個"<<k<<"進制數(shù):"<<endl;</p><p><b> cin>>a;</b></p><p> m=strlen(a);</p><p> for(i=m-1;i>=0&&k!=16;
20、i--)</p><p><b> {</b></p><p> n+=(a[i]-48)*p;</p><p><b> p*=k;</b></p><p><b> }</b></p><p><b> if(!n)</b&
21、gt;</p><p> for(i=m-1;i>=0;i--)</p><p><b> {</b></p><p> if(a[i]<65) n+=(a[i]-48)*p;</p><p> if(a[i]>=65) n+=(a[i]-55)*p;</p><p>&
22、lt;b> p*=k;</b></p><p><b> }</b></p><p> cout<<"相應(yīng)的10進制數(shù)為:"<<n<<endl</p><p> 5課程設(shè)計的實驗結(jié)果</p><p> 輸入一個二進制數(shù)、八進制數(shù)、十六進制
23、數(shù)、K進制數(shù),觀察結(jié)果,計算結(jié)果,對比是否相同。</p><p><b> 6課程設(shè)計總結(jié)</b></p><p> 在這一次課程設(shè)計中,讓我深知自己的不足,以前的學習只停留在表面上,在課程設(shè)計中許多概念型問題還需要看書解決,說明學習還不夠扎實,這門課不是老師教完就結(jié)束的,還需要自己經(jīng)常的上機實驗,來步步完善自己的思維,以更熟練的掌握C++的應(yīng)用。</p&g
24、t;<p> 通過這些復(fù)雜的程序,我們可以使我們的大腦更加靈活。能夠使我們更加熟練程序,能夠達到看到復(fù)雜的程序就知道結(jié)果,這對我們今后工作有很大的幫助,另外,我們能夠在程序中充分展示自己所學過的知識,將課堂知識運用到實際中,達到大學生動手能力的標準。</p><p> 作為一名大學生我們不過要學好課堂上的知識,而且我們還要擁有結(jié)合實踐的能力。通過這一次課程設(shè)計,我學到了很多,不僅僅是科學知識,更
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計課程設(shè)計-成績統(tǒng)計系統(tǒng)+進制轉(zhuǎn)換系統(tǒng)
- c語言課程設(shè)計--進制轉(zhuǎn)換
- c語言課程設(shè)計--進制轉(zhuǎn)換
- c語言進制轉(zhuǎn)換課程設(shè)計
- c++課程設(shè)計報告--猜數(shù)游戲
- c語言進制轉(zhuǎn)換課程設(shè)計 (2)
- 基于c語言進制轉(zhuǎn)換課程設(shè)計
- C語言課程設(shè)計--進制轉(zhuǎn)換.doc
- 有理數(shù)運算c++課程設(shè)計報告
- c++課程設(shè)計報告
- 課程設(shè)計--進制轉(zhuǎn)換
- 課程設(shè)計--進制轉(zhuǎn)換
- c++課程設(shè)計報告-- 學籍管理系統(tǒng)
- c++課程設(shè)計報告--飛機訂票系統(tǒng)
- c++課程設(shè)計報告---飛機訂票系統(tǒng)
- 實數(shù)進制轉(zhuǎn)換系統(tǒng)
- c++課程設(shè)計—教師管理系統(tǒng)報告
- 酒店管理系統(tǒng)_c++課程設(shè)計報告
- c++課程設(shè)計報告--酒店管理系統(tǒng)
- c++課程設(shè)計報告---飛機訂票系統(tǒng)
評論
0/150
提交評論