計算機中小數的儲存

2021-09-27 12:53:10 字數 986 閱讀 8406

我們在最初學習c語言的時候,學習資料型別的時候接觸到了浮點數,知道了它被用來儲存小數,但是為什麼在計算機中小數要稱為浮點數呢?

在c語言中文網上,我知道了資料的儲存分為定點數和浮點數,它們的命名方式也取決於它們儲存資料的方式

c語言小數儲存的方法有兩種:定點數和浮點數

定點數

顧名思義,定點數就是小數點位置固定的數

下圖以32bit機器為例,表示124.25

第一位資料為符號位,其餘為資料位;資料位又被劃分為整數部分和小數部分

使用定點數表示小數,小數點的位置固定

定點數的優缺點:

定點數的優點就是可以精確表示想要表示的數值,不會像浮點數一樣計算機內部無法精確的表示一些數值

定點數的缺點就是不適用於表示特別大或者特別小的數值

浮點數

和定點數不同的是,浮點數表示小數時,小數點的位置是浮動的、不固定的

浮點數的儲存格式,一般按照ieee 754標準,表示方法如下:

最高的 1 位是符號位 s,接著的 8 位是指數e,剩下的 23 位為有效數字 m

浮點數的表示類似於科學計數法

十進位制二進位制

浮點表示

5101

1.01 x 2^2

91001

1.001 x 2^3

10001100100

1.100100 x 2^6

0.125

0.001

1 x 2^-3

數值範圍不受限制,表示格式也不受限制,因此它能夠表示比整數更大的資料;但是它的運算速度比整數運算低,且容易丟失精度

C語言 計算機中小數儲存

在計算機中整數的儲存是大多數人能夠輕易理解得,比如在資料寬度為1個位元組時,如果整數表示無符號數時就是0 15.如果整數用作有符號數時 0000 01111代表十進位制的0 7。而1000 1111表示從 8 1 然而計算機儲存資料的方式都是一樣的,並沒有區分有符號和無符號,是我們使用資料的人來確定...

小數在計算機中的表示

執行如下 得到結果 你猜是多少呢?嗯你沒有看錯得到的答案是57.所以為什麼會出現這種情況呢?首先需要 的是0.58這個數字是如何在計算機中儲存的。我們一般用下面格式表示浮點數。sp m 其中s是符號位,p是階碼,m是尾數。單精度浮點數是32位,雙精度浮點數是64位。s pm表示公式 偏移量1823 ...

負數在計算機中的儲存

問乙個基本的問題。負數在計算機中如何表示?舉例來說,8在計算機中表示為二進位制的1000,那麼 8怎麼表示呢?很容易想到,可以將乙個二進位制位 bit 專門規定為符號位,它等於0時就表示正數,等於1時就表示負數。比如,在8位機中,規定每個位元組的最高位為符號位。那麼,8就是00001000,而 8則...