為什麼叫浮點數

時間 2021-05-11 18:41:26

1樓:道不輕傳

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

2345 為尾數,10 為基數,2 為指數。浮點數利用指數達到了浮動小數點的效果,從而可以靈活地表達更大範圍的實數。

2樓:勝勳

計算機裡面的小數為什麼叫浮點數? 如果浮點是小數點可以浮動的等方面是的,就是「點浮動」的意思,小數點的位置可以改變一般不都預設小數點在有效數字的最前面或者某個固定位置嗎?

才不是呢

如果是「定點數」,那就是32位的前15位是整數部分,後16位是小數部分

這樣也行,只不過表達的範圍沒有浮點方式那麼大而已,勉強也能用

3樓:Tux ZZ

二進位制浮點數的表示方法類似科學計數法,用數學表示寫出來是類似1.6142568乘2的3次方這樣的

優點是可以表示很小或很大的數,同時保證有效位數十進位制浮點數就是純粹的科學計數法,用數學表示寫出來類似2.3333乘10的3次方這樣的

至於浮點這個名字是個形象化的比喻,比如十進位制浮點數指數部分+1s相當於小數點右移一位,-1s相當於左移一位

4樓:靈劍

小數點在數制中代表一種對齊方式,比如說你要比較1000和200哪個比較大你應該怎麼做呢?你必須把他們右對齊:

1000

200然後發現1比0(前面補零)大,所以1000比較大。那麼如果是比較1000和200.01呢?這時候就不是右對齊了,而是對應位對齊,也就是小數點對齊:

1000

200.01

小數點位置在進製表示中是至關重要的,位置差一位整體就要差進製倍(十進位制就是十倍)。在計算機中也是這樣,雖然計算機使用二進位制,但在處理非整數時,也需要考慮小數點位置的問題,無法對齊小數點就無法做加法、減法比較這樣的操作。我們說小數點位置,永遠是說相對於我們儲存的數字來說的,比如說我們儲存了01001001,然後小數點在第三位之後,也就是010.

01001了。

在計算機中處理小數點位置有浮點和定點兩種,定點就是小數點永遠在固定的位置上,比如說我們約定一種32位無符號定點數,它的小數點永遠在第5位後面,這樣最大能表示的數就是11111.111111111111111111111111111,它是32 - 2^-27,最小非零數是2^-27。定點數是提前對齊好的小數,整數是一種特殊情況,小數點永遠在最後一位之後。

定點數的優點是很簡單,大部分運算實現起來和整數一樣或者略有變化,但是缺點則是表示範圍,比如我們剛才的例子中,最大只能表示32;而且在表示很小的數的時候,大部分位都是0,精度很差,不能充分運用儲存單元。浮點數就是設計來克服這個缺點的,它相當於乙個定點數加上乙個階碼,階碼表示將這個定點數的小數點移動若干位。由於可以用階碼移動小數點,因此稱為浮點數。

5樓:vetch

並不是說小數叫做浮點數。準確的來說:「浮點數」是一種表示數字的標準,整數也可以用浮點數的格式來儲存。

當代大部分計算機和程式在處理浮點數時所遵循的標準是由IEEE和ANSI制定的。比如,單精度的浮點數以4個位元組來表示,這4個位元組可以分為三個部分:1位的符號位(0代表正數,1代表負數),8位用作指數,最後的23位表示有效數字。

「浮點數」的定義是相對於「定點數」來說的,它們是兩種表示小數的方式。

所謂「定點」是指小數點的位置總是在數的某個特定位置。

比如在銀行系統中,小數點的位置總是在兩位小數之前(這兩位小數用來表示角和分)。其可以使用BCD碼來對小數進行編碼。

浮點格式則是基於科學計數法的,它是儲存極大或極小數的理想方式。但使用浮點數來表示資料的時候,由於其標準制定方面的原因可能會帶來一些問題,例如:某兩個不同的整數在單精度浮點數的表示方法下很可能無法區分。

6樓:梁白開

「浮點數」的定義是相對於「定點數」來說的。

在計算機內部,資料以二進位制的形式儲存和運算,而計算機內表示的數,又被分成整數和實數兩大類。

其中整數一般用定點數表示,定點數指小數點在數中有固定的位置(一般來說整數的小數點都在最末位數後)。

實數一般用浮點數表示,因為它的小數點位置不固定。浮點數是既有整數又有小數的數,純小數可以看作實數的特例。

浮點數如何轉換為定點數?

Aman 按 IEEE754 標準,float 的格式是 binary32,double 的格式是 binary64,浮點數中的有效數字 significant 部分其實可以理解為是乙個定點數,只不過有指數 exponent 部分做了小數點偏移 類似科學計數法,只不過是二進位制的,浮點數因此得名 我...

浮點數是如何計算hash的?

hash的本質是對二進位制串進行操作,只要有一位不同hash結果就差千萬里。那麼,你的問題就是先把相近的值用相同的二進位制串表達,然後去計算hash。具體怎麼定義相近,就由你自己實現。最簡單的辦法就是用吧。這裡的公式編輯器不支援分數麼? 如何保證被看做相等的兩個數值非常接近的浮點數hash到相同的值...

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

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