關於浮點數基數,為什麼說長度相同時基數越大所能表示數的個數越多?

時間 2021-06-09 19:45:44

1樓:無核橄欖

在這裡r表示基數,如果r由2變為16,那麼尾數M的範圍就變大了,自然表示的數的個數也越多,而階碼不受基數的變化影響,所以長度相同時基數越大所能表示數的個數越多。

剛學到這裡,不知道理解有沒有問題。

2樓:苗苗

這句話在【規格化】的前提下才成立。我們來複習下這個概念:

基數為2時,尾數最高位為1的數為規格化數;

基數為4時,尾數最高兩位不全為零的數為規格化數;

基數為8時,尾數最高三位不全為零的數為規格化數。

好了,這裡我們假設尾數為10位,階碼為4位。

假設為正數。即數符為0。

規格化浮點數所表示的數的個數取決於尾數的排列組合數。

對於基數為2的規格化浮點數,尾數可表示為:

0.1 由於最高位固定為1,排列組合數為2^9,即只能表示2^9個尾數;

對於基數為4的規格化浮點數,尾數可表示為:

0.01

0.10

0.11

排列組合數為2^8+2^8+2^8=2^9+2^8,比基數為2的規格化浮點數多表示2^8個尾數;

對於基數為8的規格化浮點數,尾數可表示為:

0.001

0.010

0.011

0.100

0.101

0.110

0.111

排列組合數為7x2^7=2^9+2^8+2^7比基數為2的規格化浮點數多表示2^8+2^7個數,比基數為4的規格化浮點數多表示2^7個數。

為什麼叫浮點數

道不輕傳 定點數能表示的數字有限,因為小數點固定,整數字和小數字就固定,就不利於表達特別大或特別小的數,浮點數就可以表示很大或很小的數字,因為小數點不固定,比如 123.45 用十進位制科學計數法可以表達為 1.2345 10 其中 1.2345 為尾數,10 為基數,2 為指數。浮點數利用指數達到...

Python中為什麼將浮點數賦值給變數,似乎可以直接使用 號進行比較?

邱昊宇 這玩意兒換成 C 也沒啥兩樣呀 include define print v printf s n v True False intmain 編譯執行以後的輸出一模一樣。自己把這些數換成二進位制然後保留 53 位有效數字算一算就知道了。那幾個可以用 判斷的,是因為左右兩邊真的相等。但是這種相...

為什麼兩種浮點數型別的包裝類 Float,Double 並沒有實現常量池技術?

dwing 各種整數型別有常量池是因為valueOf根據引數定位常量池開銷很低.而浮點數就不一樣了,判斷乙個浮點數是否整數並轉換成整數相對來說並不快,所以valueOf索引到常量池有些開銷.當然如果自己有這方面需求完全可以自己建立Float,Double常量池,而且可以根據特定需求建立合適大小的池及...