我們在最初學習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則...