C語言 關於實型精確度和取值範圍的計算方法

2021-06-28 17:35:18 字數 475 閱讀 1816

實型儲存分為三部分:符號部分,小數部分和階數部分。其中小數部分表示精確程度,階數部分表示大小。

單精度規定用8位二進位制表示階數,即最大表示為2的128次方,把這個數算出來是3.4028236692093846346337460743177e+38

雙精度規定用11位二進位制表示階數,即最大表示為2的1024次方,結果是1.797693134862315907729305190789e+308

float的有效數字是6~7位,double的有效數字是15~16位:演算法如下

單精度8位階碼,1位符號,剩下23位尾數,算出2的負23次方,得到0.00000011920928955078125

前面0有多少個,就表示能精確到那一位

雙精度11位階碼,1位符號,剩下52位尾數,算出2的負52次方,得到0.00000000000000022204460492503130808472633361816

前面0有多少個,就表示能精確到那一位

精確度 你想知道的C語言 3 8

q 只要涉及到浮點數,每本書基本都會說它不是精確的,我們該如何理解精確二字?a 精確永遠都是相對而言。當我們認為1 2 3.自然數是精確的,自然c語言中int char都是精確的。如果我們認為1.33是精確的,那麼它就是精確的。那為什麼浮點數會被認為不是精確的呢?以4位元組浮點數為例,符號位 指數字...

C語言各資料型別大小和取值範圍

因為cpu的差異,各系統中的資料型別所佔的位元組數 bytes 不同,二進位制位數 bit 也不同。那麼怎樣才能知道自己系統的資料型別的位元組數,位數呢?授之以魚不如授之以漁,大家可以自己從電腦裡獲取這些資訊。首先我們知道1個位元組等於8個位,可以用sizeof 關鍵字設計以下程式解決 獲取當前作業...

C語言各資料型別大小和取值範圍

因為cpu的差異,各系統中的資料型別所佔的位元組數 bytes 不同,二進位制位數 bit 也不同。那麼怎樣才能知道自己系統的資料型別的位元組數,位數呢?授之以魚不如授之以漁,大家可以自己從電腦裡獲取這些資訊。首先我們知道1個位元組等於8個位,可以用sizeof 關鍵字設計以下程式解決 獲取當前作業...