這章主要學了原碼反碼和補碼的表示,還有運算,真是頭疼。
1. 除了十進制以外,這個世界上常見的還有什麼進制?
2. 二進制一般使用什麼方法轉換成十進制?
3. 十進制—般使用什麼方法轉換成二進制?
4. 計算機直接使用原碼計算有什麼缺點?
5. 請計算12、124 、1023、-1 、-127的二進制原碼。
6. 計算機的補碼解決了什麼問題?
7. 請計算12、124 、1023、-1 、-127的補碼,並將其使用32位定點表示法和32位浮點表示法(1 位符號位、8位階碼、23位數值位)表示出來。
8. 你是否可以使用代碼實現一個通用的計算器,可以將二進制數轉換爲十進制數,把十進制數轉換爲二進制數。
9. 計算機爲了判斷運算溢出使用了什麼方法?
10. 什麼是溢出?什麼是上溢?什麼是下溢?
11 . 對於64位浮點型(double), 一般都是採用最高位爲符號位,次高11 位爲指數位,其次52 位爲尾數,試求出double型所能表達的最大值和最小值。
12. 浮點數相比定點數,有什麼優勢?有什麼不足的地方。
13. 浮點數之間做加減法運算需要幾個步驟?每個步驟都是必須的嗎?爲什麼?
14. x=0.1101^1001, y=0.1011^110, 謂計算x+y的值,x-y的值。
15. x=0.1101^111, y=-0.1111^1101, 請計算x+y的值,x-y 的值。
答:
1.八進制、二進制、十六進制。
2.加權相加法。
3.除2取餘法。
4.原碼無法將減法轉換成加法運算。
5.
原碼:12(01,100)、124(01,111,100)、1023(01,111,111,111)、-1(11)、-127(11,111,111)
6.
補碼解決的問題:將符號位和數值位、加減法統一處理;統一了+0和-0的問題
7.
補碼:
12(01,100)、124(01,111,100),1023(01,111,111,111)、-1(11)、-127(10,000,001)
32位定點表示法:
12(0000000,00000000,00000000,00001100)
124(0000000,00000000,00000000,01111100)
1023(0000000,00000000,00000011,11111111)
-1(1000000,00000000,00000000,00000001)
-127(1000000,00000000,00000000,00000001)
32位浮點表示法:
十進制數字
補碼
符號位
階碼
數值位
12
01100
0
10,100,000
11,000,000,000,000,000,000,000
124
01,111,100
0
11,100,000
11,111,000,000,000,000,000,000
1023
01,111,111,111
0
10,100,000
11,111,111,110,000,000,000,000
-1
11
1
10,000,000
10,000,000,000,000,000,000,000
-127
10,000,001
1
10,000,000
10,000,000,000,000,000,000,000
8.
十進制轉爲二進制,除2取餘法。
二進制轉爲十進制,加權相加法。
9.
雙符號位參與運算、單符號判別法、進位判別法。
10.
溢出是指運算結果超出了機器所能表示的數的範圍。上溢是指超過了機器所能表示最大值(正負無窮),下溢是指結果小於機器能表示的最小值(正負零)。
11.
64位浮點數。
最大整數爲:階碼,符號位爲正,數值位全1;尾數,符號位爲正,數值位全1。
最小整數爲:階碼負,符號位負,數值位全0(表示負數的最小值);尾數,符號位正,數值位1個0,後面全0.
12.
優勢:浮點數可以表示數值更大和更小的數字。
劣勢:浮點數的精度比定點數要低,運算時間長。
13.
浮點數加減法運算的步驟:對階、尾數加減、結果規格化(左規、右規)、舍入處理(如果進行了規格化)、溢出判斷。每個步驟都是必須的。
14.
沒看懂題意。