計算機組成原理中的浮點數

2021-08-28 14:33:19 字數 2819 閱讀 7410

一、目前通用的ieee754浮點數值的計算公式要更加複雜與精妙: 

v=(−1)s∗m∗2e(公式1)

1.乙個32位的ieee浮點數的位向量分為三個部分:

[0(符號位) 00000000(階碼位) 00000000000000000000000(小數字)]

從右起,0-23位為小數字,24-31位為階碼位,32位最高位為符號位。

符號位:符號位比較好理解,在公式1中,如果符號位為0,v的值就會為正,如果符號位為1,v的值就會為負。設符號位的值為s

階碼位:階碼位決定了v的取值範圍,但它並不就是等於公式1中的e。設階碼位的值=exp,計算exp的值的方法採用無符號編碼規則。

小數字設小數字的值=frac,計算frac的值的方法是也是定點數表示法, frac[e23e22…e1e0]=e23−1+e22−2+…+e−231+e−240frac[e23e22…e1e0]=e23−1+e22−2+…+e1−23+e0−24。

注意:當乙個浮點數的尾數為 0 時,不論其階碼為何值,或者當階碼的值遇到比它能表示的最小值還小時,不管其尾數為何值,計算機都把該浮點數看成 0 值,稱為機器零

在不同的情況中,公式1中的e與m的計算方式會有差異:

—情況1,階碼位非全0,並且非全1。這種情況下,浮點數的值被稱為規格化的值。

—情況2,階碼位全0。非規格化的值。

—情況3,階碼位全1。特殊值。

先分析與比較32位的浮點數的情況1與情況2:

情況1中e與m的計算方法:

e=exp−bias,m=1+frac,bias=2浮點數的階碼位數−1−1(bias的值:32位為127,64位1024)e=exp−bias,m=1+frac,bias=2浮點數的階碼位數−1−1(bias的值:32位為127,64位1024)

情況2中e與m的計算方法:

e=1−bias,m=frac,bias=2浮點數的階碼位數−1−1(bias的值:32位為127,64位1024)e=1−bias,m=frac,bias=2浮點數的階碼位數−1−1(bias的值:32位為127,64位1024)

情況1之中,e的最小值是[00000001]2−127=−126[00000001]2−127=−126,最大值為[11111110]2—12710=254−127=127[11111110]2—12710=254−127=127。m的最小值是1+[00...00]2=11+[00...00]2=1,最大值為1+[11...11]=(2−ϵ)1+[11...11]=(2−ϵ)非常接近2的乙個值。所以v的最大值為,v=(−1)0∗(2−ϵ)∗2127=(2−ϵ)∗1.701411835∗1038≈3.4∗1038v=(−1)0∗(2−ϵ)∗2127=(2−ϵ)∗1.701411835∗1038≈3.4∗1038,此時v的位向量是[0 11111110 11..11]。v的最小值為與最大值相比只是符號位變為了1,v=(−1)1∗(2−ϵ)∗2127≈−3.4∗1038v=(−1)1∗(2−ϵ)∗2127≈−3.4∗1038,v的位向量為[1 11111110 11..11]。v最接近0的值分別在0的兩端,為v=(−1)0或1∗1∗2−126=±2−126v=(−1)0或1∗1∗2−126=±2−126。

情況2之中,e的值是唯一的,1-127=-126。m的最小值是[00...00]=0[00...00]=0,最大值為[11...11]=(1−ϵ)[11...11]=(1−ϵ)乙個非常接近1的值。v的最大值為,v=(−1)0∗(1−ϵ)∗2−126≈2−126v=(−1)0∗(1−ϵ)∗2−126≈2−126。v的最小值與最大值相比只是符號位變為了1,為(−1)1∗(1−ϵ)∗2−126≈−2−126(−1)1∗(1−ϵ)∗2−126≈−2−126。v的最接近0的值為0,[0 0000000 00…00]。

隨著小數字的值的遞增以及符號位的變化,匹配值均勻分布在數軸上0的兩端,±2−126±2−126之間,每兩個匹配值的間距為2−232−23*。

比較情況1和情況2,有幾個值得注意的點:

1,e:e決定了數值的取值範圍,最小值,最大值,最接近0的正值,以及最接近0的負值。

2,±2−126±2−126:這兩個數值猶如乙個邊界,再數軸上,兩個數值的之間為非規格化數值,兩個數值之外規格化的數值。規格化的數值最接近0的值分別為v=(−1)0或1∗1∗2−126=±2−126v=(−1)0或1∗1∗2−126=±2−126,非規格化的最大最小值為v=(−1)0或1∗(1−ϵ)∗2−126≈±2−126v=(−1)0或1∗(1−ϵ)∗2−126≈±2−126。在這個邊界處,e的值是固定的,-127。這種平滑的過渡是由m在規格化值中的最小值設定1+frac,以及frac的最大值為1−ϵ1−ϵ 的特點所實現的。

3,小數字位數23:在數軸上,±2−126±2−126之間平均分布著223−1223−1個小數匹配值,每兩個匹配值之間的間距為2^。在±2−126±2−126外側,當frac值為0時,共有254個匹配值向數軸兩端指數遞增式的蔓延,在這些值中的每兩個匹配值之間又有223−1223−1個匹配值,所以小數字的位數基本決定了浮點數的匹配值數量,浮點數的精度。

再看一下情況3,特殊值:

當階碼位全為1時,如果小數字全為0,此數表示無窮大,∞∞,而符號位決定了他是+∞+∞或−∞−∞。例如當乙個float值除以0後它的值為無窮。

當階碼位全為1時,如果小數字不全為0,此數為nan,not a number,不是乙個數。兩個值為無窮的float相減結果為nan,如果乙個float變數被賦值sqrt(-1),根號-1,它的值也會變為nan。

重溫計算機組成原理 浮點數

最主要的原因是按照整數這種定位數去在計算機中儲存,存的數量沒有滿足到需求。譬如 暫存器只有4位的話,儲存整數最多儲存10000個,範圍是0 9999。1 04 10000 10 4 10000 104 10 000如果是小數呢,加入小數點固定在中間,如99.99,儲存的數量也是10000。那麼9.9...

計算機組成之浮點數

符號位 資料的正負號標誌 正1負0。尾數部分 轉化成二進位制後的小數部分,其餘尾數補零。指數部分 1.轉化成二進位制後,再轉化成科學計數法 二進位制 如果是原來資料的左移得到的資料指數部分最高位為1,右移為0,其餘七位的計算方法 科學計數法的指數資料大小 1後用補碼計算數值。2.計算得出二進位制科學...

計算機組成原理之定點數與浮點數

計算機中常用的資料表示形式 定點數 浮點數。定點數 小數點的位置固定不變 分為定點定點整數和定點小數 1 定點小數 純小數 小數點隱含固定在最高資料位的左邊,所以整數字就是最高位用來表示符號位 計算機中儲存為 1010111 第一位1為符號位,表示負數 實際含義 0.010111 2 定點整數 純整...