float的範圍和有效數字怎麼算出來的

時間 2021-08-30 09:40:01

1樓:匿名使用者

首先說一下:

範圍是3.4e-38 ——3.4e+38,可提供7位有效數字。

上述這兩個量都是近似值,各個編譯器不太一樣的。

下面我就將標準值是怎麼定義的,和你說一下:

這個比較複雜,建議你找一下ieee754標準看一下。

這個簡單說一下吧:

在ieee754標準中進行了單精度浮點數(float)和雙精度數浮點數(double)的定義。float有32bit,double有64bit。它們的構成包括符號位、指數位和尾數位。

這些位的構成如下:

float---第31位(佔1bit)---第30-23位(佔8bit)----第22-0位(佔23bit)

double--第63位(佔1bit)---第62-52位(佔11bit)---第51-0位(佔52bit)

取值範圍主要看指數部分:

float的指數部分有8bit(2^8),由於是有符號型,所以得到對應的指數範圍-128~128。

double的指數部分有11bit(2^11),由於是有符號型,所以得到對應的指數範圍-1024~1024。

由於float的指數部分對應的指數範圍為-128~128,所以取值範圍為:

-2^128到2^128,約等於-3.4e38 — +3.4e38

精度(有效數字)主要看尾數位:

float的尾數位是23bit,對應7~8位十進位制數,所以有效數字有的編譯器是7位,也有的是8位

2樓:匿名使用者

就是2的n次方

原因計算機儲存最小位bit,1bit就是1個“0”或者1個"1"。

你的題目有點錯誤,是-3.4e38---3.4e38,二進位制數首位不表示數值,表示正負。

具體是2的好多次方不重要吧,需要的話用電腦上的計算器算換算下就是

c語言中float輸出的結果從左往右有效數字是6位,但是我編寫這個小程式後怎麼就只有3位有效?望高手解答

想要搞清楚這個問題,你需要了解float型別在記憶體中的儲存結構 符號位 指數 尾數 78.88在記憶體中的結構為 01000010 10011101 11000010 10001111 第一位為符號位,0 後面八位為指數位10000101 最後23位為尾數0011101 11000010 1000...

C語言有效數字問題,在c語言中,有效數字和有效數位怎麼解釋?

輸出控制符是不分單精度雙精度的,之所以有 f和 lf,完全是為了書寫規則的完善,沒有實際意義。都是double型的。f系統預設輸出6個小數點後的位,小數點前的不管多少都輸出為什麼可以完整地把12.123456輸出出來,單精度為6 7為有效數字 g 當指數小於 4或大於等於精度時採用 e或 e的格式,...

有效數字的計算方法,有效數字運算規則

有效數字及其運算規則 一 有效數字的一般概念 1.有效數字 任何乙個物理量,其測量結果必然存在誤差。因此,表示乙個物理量測量結果的數字取值是有限的。我們把測量結果中可靠的幾位數字,加上可疑的一位數字,統稱為測量結果的有效數字。2.確定測量結果有效數字的基本方法 1 儀器的正確測讀 儀器正確測讀的原則...