973
技術社區[雲棲]
《計算機科學導論》一2.5 練習
本節書摘來異步社區《計算機科學導論》一書中的第2章 ,第2.5節,[美]貝赫魯茲A. 佛羅讚(Behrouz A. Forouzan)著 劉藝劉哲雨等譯, 更多章節內容可以訪問雲棲社區“異步社區”公眾號查看。
2.5 練習
小測驗
在本書網站上提供一套與本章相關的交互式測驗題。強烈建議學生在繼續本章習題前首先完成相關測驗題以檢測對本材料的理解。
複習題
1.定義一個數字係統。
2.辨析位置化和非位置化數字係統。
3.定義位置化數字係統中的底或基數。位置化數字係統中,底與符號的數量有什麼關係?
4.簡述十進製係統。為什麼稱作十進製?該係統的底是多少?
5.簡述二進製係統。為什麼稱作二進製?該係統的底是多少?
6.簡述八進製係統。為什麼稱作八進製?該係統的底是多少?
7.簡述十六進製係統。為什麼稱作十六進製?該係統的底是多少?
8.為什麼二進製和十六進製互換很容易?
9.十六進製係統中1個數碼表示二進製係統中的幾位?
10.八進製係統中1個數碼表示二進製係統中的幾位?
練習題
1.將下列二進製數轉換為十進製數,不用計算器並寫出計算過程:
a. (01101)2 b. (1011000)2 c. (011110.01)2 d. (111111.111)2
2.將下列十六進製數轉換為十進製數,不用計算器並寫出計算過程:
a. (AB2)16 b. (123)16 c. (ABB)16 d. (35E.E1)16
3.將下列八進製數轉換為十進製數,不用計算器並寫出計算過程:
a. (237)8 b. (2731)8 c. (617.7)8 d. (21.11)8
4.將下列十進製數轉換為二進製數,不用計算器並寫出計算過程:
a. 1234 b. 88 c. 124.02 d. 14.56
5.將下列十進製數轉換為八進製數,不用計算器並寫出計算過程:
a. 1156 b. 99 c. 11.4 d. 72.8
6.將下列十進製數轉換為十六進製數,不用計算器並寫出計算過程:
a. 567 b. 1411 c. 12.13 d. 16.5
7.將下列八進製數轉換為十六進製數,不用計算器並寫出計算過程:
a. (514)8 b. (411)8 c. (13.7)8 d. (1256)8
8.將下列十六進製數轉換為八進製數,不用計算器並寫出計算過程:
a. (51A)16 b. (4E1)16 c. (BB.C)16 d. (ABC.D)16
9.將下列二進製數轉換為八進製數,不用計算器並寫出計算過程:
a. (01101)2 b. (1011000)2 c. (011110.01)2 d. (111111.111)2
10.將下列二進製數轉換為十六進製數,不用計算器並寫出計算過程:
a. (01101)2 b. (1011000)2 c. (011110.01)2 d. (111111.111)2
11.將下列十進製數轉換為二進製數,使用例2.17中討論的另一種方法,並寫出計算過程:
a. 121 b. 78 c. 255 d. 214
12.將下列十進製數轉換為二進製數,使用例2.18中討論的另一種方法,並寫出計算過程:
a. 35/8 b. 123/32 c. 413/64 d. 125/128
13.在底為b的位置化數字係統中,可用k個數碼表示的最大整數數字是bk-1。分別找出以下係統中使用6個數碼的最大數字:
a.二進製 b.十進製 c.十六進製 d.八進製
14.不進行轉換,找出下麵各個情況中在目標係統中所需的最少數碼數量:
a. 5個十進製數碼轉換為二進製 b. 4個十進製數碼轉換為八進製
c. 7個十進製數碼轉換為十六進製
15.不進行轉換,找出下麵各個情況中在目標係統中所需的最少數碼數量:
a. 5位二進製數碼轉換為十進製 b. 3個八進製數碼轉換為十進製
c. 3個十六進製數碼轉換為十進製
16.下表顯示如何重寫小數,使其分母是2的冪次(1,2,4,8,16等等)。
但是,我們有時需要組合它們以得到合適的小數。例如,0.625是0.5+0.125。這就意味0.625可以寫成1/2+1/8或5/8。
將下列十進製小數改寫為帶2的冪次的小數:
a. 0.1 875 b. 0.640 625 c. 0.40 625 d. 0.375
17.使用前麵的解題方法,把下列數轉換為二進製數:
a. 7.1 875 b. 12.640 625 c. 11.40 625 d. 0.375
18.找出下列情形的整數最大值:
a. b=10,k=10 b. b=2,k=12 c. b=8,k=8 d. b=16,k=7
19.找出用於存儲下列整數所需的最小位數:
a.小於1000 b.小於100 000 c.小於64 d.小於256
20.一個小於bk的數可以用以b為底的k個數碼表示。求下列情況各需要數碼的數量:
a.小於214的二進製整數 b.小於108的十進製整數
c.小於813的八進製整數 d.小於164的十六進製整數
21.一個用於因特網的公共底是b=256。我們使用256個符號來表示該係統中的數字。設計者使用十進製數字0到255來表示其中一個符號,而不是創建大量的新符號。也就是說,符號集是S={0,1,2,3,…,255}。該係統中的數字總是以S1.S2.S3.S4這種4個符號間隔3個點的形式出現。該係統用於定義因特網的網址(參見第6章)。例如,該係統中的一個地址是10.200.14.72,等價於十進製中的10×2563+200×2562+14×2561+72×2560=180883016。這個數字係統稱為點十進製計數法。寫出下列因特網地址的十進製數值:
a. 17.234.34.14 b. 14.56.234.56 c. 110.14.56.78 d. 24.56.13.11
22.前麵問題中因特網地址也可以表示為位模式。這種情況,用32位表示一個地址。在點十進製計數法中的一個符號用8位。例如,地址10.200.14.72,也可表示為00001010 11001000 00001110 01001000。用位表示下列因特網地址:
a. 17.234.34.14 b. 14.56.234.56 c. 110.14.56.78 d. 24.56.13.11
23.寫出等值下列羅馬數字的十進製數:
a. XV b. XXVⅡ c. VLⅢ d. MCLVⅡ
24.把下列十進製數轉換成羅馬數字:
a. 17 b. 38 c. 82 d. 999
25.找出下列有錯的羅馬數字:
a. MMIM b. MIC c. CVC d. VX
26.瑪雅文明發明了位置化的二十進製(以20為底)數字係統,稱為瑪雅數字係統。他們用20為底可能是因為他們使用手指和腳趾一起來計數。該係統使用的20個符號建立在3個更簡單的符號之上。該係統的先進特征在於它有符號0,是一個外殼。另外2個符號是一個圈(或一個鵝卵石)表示1,以及一個橫杆(或一個棍子)表示5。為表示大於19的數字,數字豎寫。在因特網搜索以下問題的答案:十進製數12、123、452和1256在瑪雅數字係統中是什麼?
27.巴比倫文明發展了首個位置化數字係統,稱為巴比倫數字係統。他們繼承了閃族人和阿卡得人的數字係統。將其發展為位置化的六十進製(以60為底)數字係統。該底現今還用於時間和角度。例如,1小時為60分鍾;1分鍾為60秒。同樣,1度為60分;1分為60秒。作為底為b的位置化係統需要b個符號(數碼),我們希望一個位置化的六十進製係統有60種符號。但是巴比倫人沒有符號0,而且通過堆疊表示1和10的2個符號構造出其他59個符號。在因特網搜索以下問題的答案:
a.用巴比倫數字表示十進製數:11 291,3646,3582。
b.指出沒有符號0可能出現的問題。巴比倫數字係統是如何解決這個問題的?
小程序
為了模擬每章中討論的一些概念,我們編寫了一些Java的小程序。強烈建議學生通過嚐試這些應用程序來加深對每章討論材料的理解。
最後更新:2017-06-21 16:32:59