1樓:1023我愛你
雙精度型別的數用8個位元組64位二進位制表示,雙精度數大約有16位十進位制有效數字,數值的表示範圍約為±(1.7×10^308…1.7×10^308);
同理浮點型別的數用4個位元組32位二進位制表示。這樣表示的數大約有7位十進位制有效數字,數值的表示範圍約為±(3.4×10^38…3.4×10^38);
長雙精度型別的數用10個位元組80位二進位制表示,大約有19位十進位制有效數字,其數值的表示範圍約為±(1.2×10^4932—1.2×10^4932)
2樓:聽不清啊
雙精度浮點數(double)是計算機使用的一種資料型別,使用 64 位(8位元組) 來儲存一個浮點數。 它可以表示十進位制的15或16位有效數字,其可以表示的數字的絕對值範圍大約是:1.
7x10^-308 ~ 1.7x10^308。ieee754為其定製標準。
1位符號位, 11位階碼, 52位尾數
雙精度二進位制小數,使用64個位元儲存。
1位 11位 52位
s(符號位),編號63 e(階碼位),編號62 ~52 m(小數位), 編號51 ~ 0
0表示正,1表示負 −1022~+1023加上1023 任意
採用ieee754規定的規約數的二進位制表示範圍為(*表示0或1都行):
轉化為十進位制的公式:(-1)^s*2^(e-1023)*1.m。
所以絕對值的最小值:2^(-1023)*2=1.7*10^-308
絕對值的最小值:2^(1023)*2=1.7*10^+308
雙精度浮點數值範圍為1.7e-308~1.7e+308
3樓:匿名使用者
科學記數法,e表示10的n次方
下限:1.7e-308,即1.7的10的-308次方
上限:1.7e+308,即1.7的10的+308次方
c語言中,雙精度(double)型其數值範圍為1.7e-308~1.7e+308,這裡面的e是什麼意思啊?
4樓:匿名使用者
e是科學計數法的標誌。
1.7e-308 是 1.7 乘以 10的負308次方
1.7e+308 是 1.7 乘以 10的308次方
5樓:匿名使用者
e是科學計數法的符號。
1.7e-308意思是1.7乘以10的-308次冪
1.7e+308意思是1.7乘以10的+308次冪
雙精度型佔8 個位元組(64位)記憶體空間,其數值範圍為1.7e-308~1.7e+308,可提供16位有效數字。
6樓:匿名使用者
這個問題經常有人問,光我就回答了幾次。浮點數的機器表達與整數完全不同。在計算機中,任何浮點數都表示為(+/-)0.
dddddddddd x 2^eeee的形式。而對於double型別浮點數,64位(二進位制)分配如下:
1、用1位表示符號
2、用53位表示標準化有效值,即dddddddddd的部分3、用10位表示指數,即eee的部分
這樣可知,第二部分最大可以達到0.999......999(接近於1.
0但小於1.0),第三部分最大可以達到1024,因此整個64位double型別最大可以表示0.999......
999 x 2^1024,大約等於
1.7976931348623158乘以10的308次方。
7樓:匿名使用者
3月21日補充:
階碼為0x3ff + 真實指數
所以最大的只能是0x7ff,但是0x7ff被當作溢位了,所以最大是0x7fe
也就是1023,最小的就是-1023
後面講解中的階碼最大為1024是錯的!
應該是這樣
尾數約等於1,再加上一個預設的1 就是約等於2 ,於是最大的數就是約2*2^1023 = 2^1024 得那個數
下面的程式將說明問題
#include
using namespace std;
union
i;double d;
} num;
void main( )
符號位1位,階碼11位,尾數52位
當然最大數就是
符號位 正數
階碼 11位,最大的是 100 0000 0000 (1024 ,表示的指數範圍是-1023到1024,所以最大的是這個了)
而2^1024 約 1.79e308
尾數是有效數字
上面的最大的為 100 0000 0000是錯的
應該是0x7fe 表示:2的0x3ff次方 (0x7ff表示2的0x400方,但是有特殊含義,所以最大的是2的0x3ff次方)
-----------------------
一般機器規定,若基為2並用補碼錶示尾數,則規格化數的標誌為:「尾數的符號位和數值部分最高位具有不同的**」。
為了最大限度提高精度,尾數採用規格化形式,既1/2≤m<1。採用二進位制表示時,若尾數大於零,則規格化數應該是01***x的形式;若尾數小於零,則規格化數應為10***x的形式。
-----------------------
也是有問題的,那個不是標準的
"為便於軟體的移植,浮點數的表示格式應該有統一標準。2023年ieee(institute of electrical and electronics engineers)提出了ieee754標準。該標準規定基數為2,階碼e用移碼錶示,尾數m用原碼錶示,根據原碼的規格化方法,最高數字位總是1,該標準將這個1預設儲存,使得尾數表示範圍比實際儲存的一位"
所以尾數的真值就是0.????尾數(二進位制的,比如0.1就是十進位制0.5) 再加上 1
所以上面程式中的意思就是
一個趨於1的數(0.ffffffffffff + 1) * 2^1023 約 2^1024
所以最大的是那麼多了.......
而負數則同理
8樓:悠然小調
64位,那麼它能表示的數值範圍便是 2的64次方,假設這個數就是x,但同時需要表示負數,所以把正數中的一半拿來,放到負數中,也就是正負個x/2,我想x/2應該就是你說的1.7e+308。
關於實數 1.7e-308至1.7e308到底表示的具體範圍是多少?
9樓:宸_幼兒園
10樓:匿名使用者
e=2.718281 範圍為:-303.376——1424.192
python雙精度浮點數用什麼表示
單精度浮點數在機內佔4個位元組,用32位二進位制描述。雙精度浮點數在機內佔8個位元組,用64位二進位制描述。對程式設計人員來說,double 和 float 的區別是double精度高,有效數字16位,float精度7位。但double消耗記憶體是float的兩倍,double的運算速度比float...
單精度的浮點數有效數字為什麼是七位
單精度數的尾數用23位儲存,加上預設的小數點前的1位1,2 23 1 16777216。因為 10 7 16777216 10 8,所以說單精度浮點數的有效位數是7位。雙精度的尾數用52位儲存,2 52 1 9007199254740992,因為10 16 9007199254740992 10 1...
浮點數所能表示的數值範圍和精度撒於什麼
浮點數所能表示的數值範圍和精度取決於階碼和尾數。階碼 採用指數的實際值加上固定的偏移值的辦法表示浮點數的指數,好處是可以用長度為 個位元的無符號整數來表示所有的指數取值,這使得兩個浮點數的指數大小的比較更為容易,實際上可以按照字典序比較兩個浮點表示的大小。這種移碼錶示的指數部分,中文稱作階碼。定點數...