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

2021-09-25 22:54:27 字數 3623 閱讀 3303

最主要的原因是按照整數這種定位數去在計算機中儲存,存的數量沒有滿足到需求。譬如

暫存器只有4位的話,儲存整數最多儲存10000個,範圍是0~9999。

1 04

=10000

10^4 = 10000

104=10

000如果是小數呢,加入小數點固定在中間,如99.99,儲存的數量也是10000。那麼9.999怎麼儲存呢,向左移動一位就好了啊,是的,那麼就用到科學計數法。

9999×1

0−3=

9.999

9999 \times 10^ = 9.999

9999×1

0−3=

9.99

9這種可以控制小數點變動的就叫做浮點數。

浮點數,是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體的說,這個實數由乙個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學計數法。

用科學計數法的方式就可以滿足儲存的要求。

表示式如下:(−1

)s×1.

f×2e

(-1)^s \times 1.f \times 2^e

(−1)s×

1.f×

2e 精度

符號位數

指數字數

有效位32位單精度18

2364位雙精度111

52按照ieee 754規定的,而且有效位小數點左邊的數字為1的情況,就是規約形式的浮點數。

由於這種表示下的尾數有一位隱含的二進位制有效數字,為了與二進位制科學計數法的尾數(mantissa)相區別,ieee754稱之為有效數(significant)。

為什麼叫有效位呢?因為按照約定,小數點左邊的1是固定的,所以在儲存器層面上不會儲存這個位,同時為儲存的位數增加了一位,按照32位來說,有效位就是23位(如果要儲存小數點左邊的1只有22位)。

以32位為例子,指數字可以表示的範圍大概如下,大概就是0~256

2 8=

2562^8 = 256

28=256

按照32位來看,那麼負數怎麼辦?ieee 754就想到個折中的辦法,切割一般給負數吧。

-127~-1共127個負數,1~128共128個正數,還有0這個自然數,總共256個值。

最小值(−1

)−1×

1.00000000000000000000000×2

255(-1)^ \times 1.00000000000000000000000 \times 2^

(−1)−1

×1.0

0000

0000

0000

0000

0000

00×2

255最大值

( −1

)0

×1.00000000000000000000000×2

255(-1)^0 \times 1.00000000000000000000000 \times 2^

(−1)0×

1.00

0000

0000

0000

0000

0000

0×22

55絕對值最小值

( −1

)0

×1.00000000000000000000000×2

0(-1)^0 \times 1.00000000000000000000000 \times 2^

(−1)0×

1.00

0000

0000

0000

0000

0000

0×20

那麼儲存在計算機儲存器怎麼辦?負數怎麼表示,難道又要儲存符號位?

為了提公升效率,ieee 754想到通過類似移位的方式就可以完成操作,因為這部分直接在電路就可以完成。而且還可以增加一位的儲存空間,一舉兩得。

表示值移位值

儲存值-127

1270

-126

1271

-125

1272。。

。。。。

0127

127。。。

。。。125

127253

126127

254127

127255

最小值(−1

)−1×

1.00000000000000000000000×2

−126

(-1)^ \times 1.00000000000000000000000 \times 2^

(−1)−1

×1.0

0000

0000

0000

0000

0000

00×2

−126

最大值(−1

)0

×1.00000000000000000000000×2

127(-1)^0 \times 1.00000000000000000000000 \times 2^

(−1)0×

1.00

0000

0000

0000

0000

0000

0×21

27絕對值最小值

( −1

)0

×1.00000000000000000000000×2

−126

(-1)^0 \times 1.00000000000000000000000 \times 2^

(−1)0×

1.00

0000

0000

0000

0000

0000

0×2−

126如果浮點數的指數部分(e)的編碼值是0,分數部分非零,那麼這個浮點數將被稱為非規約形式的浮點數。非規約形式按照如下表示(這部分的轉換在電路層面應該完成了):

在 e 為 0 且 f 為 不全為0 的時候,就按照以下公式

( −1

)s×0.

f×2e

(-1)^s \times 0.f \times 2^e

(−1)s×

0.f×

2e這個時候你會想,0(-126)和255(128)到**去了?他們用於0和溢值上面了。

在 e 為 255 且 f 為 0 的時候,我們就把這個浮點數認為是 無窮大。

還有就是超過了範圍的,因為32位是有限的,上下限超過了,自然就沒辦法用浮點數來表示了,這種情況就是無窮值。

在 e 為 255 且 f 為 非0 的時候,我們就把這個浮點數認為是 nan。

最後就是nan值,有些算數表示式沒辦法表示的,如負數開平方。

總結以下:

指數字 (e)

有效位(f)

符號(s)表示0

00或100

非00或1

非規約0.f

2550

0正無窮

2550

1負無窮

255非0

0或1nan

計算機組成之浮點數

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

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

一 目前通用的ieee754浮點數值的計算公式要更加複雜與精妙 v 1 s m 2e 公式1 1.乙個32位的ieee浮點數的位向量分為三個部分 0 符號位 00000000 階碼位 00000000000000000000000 小數字 從右起,0 23位為小數字,24 31位為階碼位,32位最高...

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

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