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語言中,單精度有效數字和有效數位
詳細請檢視iee754 單精度,轉換大概規則是從0到31位 最高位表示正負 第30 23位 這8位表示階碼 後22位表示資料。因此你要把他轉化為ieee754格式才能夠看出來。能表示的最小精度為2的 23次方,結果是0.00000011920928955078125。但實際上做不到的,資料由於階碼的...
c語言中float輸出的結果從左往右有效數字是6位,但是我編寫這個小程式後怎麼就只有3位有效?望高手解答
想要搞清楚這個問題,你需要了解float型別在記憶體中的儲存結構 符號位 指數 尾數 78.88在記憶體中的結構為 01000010 10011101 11000010 10001111 第一位為符號位,0 後面八位為指數位10000101 最後23位為尾數0011101 11000010 1000...
化學 有效數字,分析化學中有效數字的問題
有效數字是有規則的。從左往右起從不為零的數字數起,如有1個有效數字,有4個有效數字,0.340000有6個有效數字,45有2個有效數字。如果要你保留3位,2 4 要寫成0.500注意 保留有效數字不需進約 根椐要求保留,一般來說不要求的題目就保留3位小數 與保留有效數字不同 如變,0.3333333...