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語言中,有效數字和有效數位怎麼解釋?
以下所述都指環境,其他的可能有所不同。單精度7位指的是整數部分加上小數部分的數字。比如。a printf a 輸出個0 a printf a 小數部分共20位,但明顯小數部分6位有效數字以後是錯的 不算。在printf的 f預設情況下 和f間沒有輸出限制 是給小數部分輸出6位數字,精度超出就輸出錯的...
有效數字的定義是什麼
有效數字,是指測量中實際可以測量到資料,讀數的規則是 從第一個不是零的數字開始往後數,有幾位數字就是幾位有效數字。舉例 1是一位有效數字,1.0是兩位有效數字,1.00是三位有效數字,1.000是四位有效數字。0.1是一位有效數字,0.01是一位有效數字,0.001是一位有效數字,0.0001是一位...
c 中float和double的區別以及浮點型指的是什麼啊
是這樣的,你程式裡的小數,比如float b 6 這一句.所有已知的小數常量,編譯器編譯的時候,都預設把它處理為double型的.所以最好用double.當然不是必須,用float也行.舉個例,float a 7.3 1.0 3 得到的結果為,將表示式右邊按照double型資料計算得到的結果,再轉化...