浮點數
1.二進位制小數
二進位制小數點右側的「位」表示2的分數冪次(負冪)
竅門:小數部分寫成分數,分母為2^k,k為小數字,分子為小數部分二進位制的值。即:
.101=5/8=0.625
表示範圍:只能精確表示諸如x/2^k的數
其它的值只能近似表示
2.ieee浮點數
數字形式:
符號位s 確定了這個數是負數還是正數,數值0的符號位特殊處理
尾數m是乙個二進位制小數,通常規定在範圍[1.0,2.0)中
階碼e表示2的冪
浮點數表示方法:
類別1:規格化值
1.判斷條件:階碼不為全0或全1
2.階碼字段被解釋為以偏置形式表示的有符號整數
e=exp-bias
bias=2^ (k-1)-1,其中k為階碼位數(單精度:2^7-1=127,雙精度1023)
3.尾數:m=(1.***…x)
***…x:frac的位表示
最小值000…0(m=1.0)
最大值:111…1
浮點數用規格化值表示示例:
例如:單精度float f=15213.0
轉化為二進位制:11101101101101=1.1101101101101x2^13
單精度浮點數尾數有23位
那麼尾數就為m=11011011011010000000000
階碼e=13
bias=2^7-1=127
exp=140=10001100
所以結果為
0(符號位)10001100(階碼)11011011011010000000000(尾數)
類別2:非規格化值
1.判斷條件:exp=000…0即:階碼為全0
2.階碼:e=1-bias(為了非規格化與規格化值之間的平滑過渡)
3.尾數:m=(0.***…x)(***…x:frac的位表示)
例如:1.exp=000…0,frac=000…0,此時值為0,符號位決定是+0還是-0
2.exp=000…0,frac不等於000…0,此時為非常接近0.0的數
類別3:特殊值
1.判斷條件:exp=111…1,即:階碼為全1
情況1:exp=111…1,frac=000…0,
表示的是無窮大,由符號位決定是正無窮還是負無窮
情況2:exp=111…1,frac不等於000…0,
表示的不是乙個數
浮點數示例:
基本思路:
1.首先計算精確結果
2.然後通過捨入來得到近似結果
浮點數的捨入:
捨入方式:
1.向上捨入
2.向下捨入
3.向0捨入
4.向偶數捨入
各種模式的優點是什麼:向偶數捨入能找到最接近的匹配值;其它三種用於計算上界和下界
向偶數捨入:中間值捨入到偶數
偶數是指0,中間值是指捨入位的右邊正好是100…的形式
例如:捨入到1/4
例如
尾數m:m1xm2
階碼e:e1+e2
如果m>=2,m右移一位,e=e+1(因為乘2代表左移一位)
如果e超出表示範圍,溢位
將m捨入到frac的位數範圍
浮點數加法
1.對階,小階向大階對齊(首先要使兩個數階碼相同,即小數點的位置對齊,因為階碼是指的尾數要左移多少位)將原來階碼小的數的尾數右移e位,其階碼值加上e,即每次右移一位尾數要階碼加1,則該浮點數的值不變,但精度變差了
2.尾數進行加法運算
3.結果規格化並進行捨入處理(如果尾數不是規格化數,則需要進行規格化處理,並進行捨入)
4.判斷溢位
(根據階碼來判斷是否溢位)
浮點數加法的數學特性:沒有結合性,由於捨入
3.14+1e10-1e10=0
3.14+(1e10-1e10)=3.14
單調性
計算機系統中的浮點數
人類世界的小數的表示形式 1 我們最習慣的小數表示形式是十進位制,形式為 它的值為 2 小數的二進位制表示法,形式為 它的值為 ieee浮點標準 在計算機系統中,因為有位元組的限制 c語言中float型別佔4位元組,double型別佔8位元組 小數的表示要複雜的多。ieee制定的浮點標準得到了所有的...
計算機系統 整數與浮點數 詳解 一
小結整數分為無符號數和有符號數。整數在計算機上的運算是模運算,形成的數學結構稱為阿貝爾群,阿貝爾群具有以下特點 滿足運算的交換律和結合律公理 整數具有單位元 0 整數具有逆元 由於模運算導致阿貝爾群產生,從而導致了整數與浮點數在運算性質上的極大不同。整數支援加法和乘法的交換律 結合律 而浮點數因為精...
計算機系統第二章 浮點數
二進位制小數 底權公式 1011.101 8 2 1 0.5 0.125 11.625 竅門 小數部分寫成分數,分母為2 k,k為小數字數,分子為小數部分二進位制的值,即101 5 8 0.625 觀察 小數點右移一位 乘2 小數點左移一位 除2 二進位制小數表示範圍 只能精確表示諸如x 2 k的數...