計算機系統 浮點數

2021-10-04 10:52:49 字數 2305 閱讀 9098

浮點數

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的數...