C語言中,單精度型資料有效數字約是6 7位,數值範圍是約 3 4e 38 3 4e 38,怎麼得出來的求解

2021-04-30 21:11:46 字數 2090 閱讀 1490

1樓:重小樓

這個比較複雜,建議你找一下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樓:匿名使用者

這個是因為浮點數的表示格式有關,你可以參考ieee的關於浮點數的格式的標準,裡面有詳細的敘述。不過很難理解。《writer great code》(第1卷)的第4章也講了關於浮點數的問題,比較好理解。

單精度數值範圍為3.4e-38 ~ 3.4e+38這個數值是怎麼算的?

3樓:痴情鐲

1、3.4乘10的負38次方到3.4乘10的38次方,因為單精度數值占用4個位元組,就是32位;

2、單精度數是指計算機表達實數近似值的一種方式;

3、單精度數的範圍在負數的時候是從 -3.402823e38 到 -1.401298e-45,而在正數的時候是從 1.401298e-45 到 3.402823e38 。

4樓:匿名使用者

就是3.4乘10的負38次方

到3.4乘10的38次方

因為單精度數值占用4個位元組,就是32位

第1位表示正負,最後8位表示指數字

這麼換算來的,具體參考

5樓:匿名使用者

我用過遊戲修改器,b(0~255)最大2的8次方減1;wb(0~65535)最大2的16次方減;1dwb(0~4294967295)最大2的32次方減1;xor最大2的64次方減1;float最大2的128次方減一。

c語言中,單精度浮點型只佔32位,但為什麼能表示3.4e-38~3.4e+38的範圍?

6樓:驚嘆

浮點型的儲存方式和整型的儲存方式不同,整型是所有二進位制位都表示那個整數,而浮點型則將二進位制位分成了符號位、整數字、小數字、指數字。由於部分二進位制位被用來儲存指數了,所以其精度就降低了,即有效數字位數變少了,但由於有指數字,所以可以表示很大的數。 具體詳情請參考有關資料。

關於float資料型別的範圍:3.4e + / - 38 (7 個數字(7digits))為什麼是這個範圍呢?大神來解答

7樓:岔路程式緣

3.4e + / - 38 (7 個數字(7digits))所說明的記數範圍是:絕對值最小從3.4×10^-38到最大3.4×10^38,能夠內精確到7個有容效數字。

如:3.14159×10^25、6×10^-25、-7.899036這樣的數字是能夠準確記錄的。

而像:3.14159×10^55、6×10^-70、-7.

89903636672這樣的數字是不能夠用float型別記錄的:3.14159×10^55太大了超過了記數範圍,6×10^-70又太小了超過了記數範圍,而-7.

89903636672數字的位數太多了。即便讓folat記下來,有的也進行了四捨五入處理過了,有的則是亂碼得不到想要的數字。

C語言中以單精度浮點型輸入,輸出格式為d或c,為什麼顯示的數不對?謝謝

肯定不對啊!你輸入的時候是單精度浮點數型別,c語言中變數就是float型別,輸入使用的格式是 f。不同的變數型別在記憶體中的儲存方式也完全不同,當你用整型格式 int 去讀乙個浮點格式 float 的數字時,不可能讀出正確的結果。所以,你必須用跟輸入時相同的格式 f 輸出 另外,還必須跟變數的型別一...

c語言中什麼是數的有效數字,C語言中什麼是乙個數的有效數字?

樓上誤解 樓主問的是c語言 不是數學 這要看你的機器型別和變數型別了 如果定義的是int型 那1234是有 版效數字 權 後面小數都是無效的 如果定義的是float型 那在限定位元組長度內都是有效數字不同機器型別也不一樣 int型有2個位元組 也有4個位元組的 在c語言中,bai乙個數的有效數du字...

c語言中float型資料表示的最大數字到底是多少翱

c語言中float型資料表示的最大數字為3 402823e38。float資料型別用於儲存單精度浮點數。回具有4個位元組,包括一答個符號位 乙個8位二進位制指數和乙個23位尾數。由於尾數的高順序位始終為1,因此它不是以數字形式儲存的。此表示形式為float型別,提供了乙個在 3 402823e38到...