c語言怎麼求單精度和雙精度數值的範圍

時間 2021-08-11 17:10:57

1樓:匿名使用者

可以看一下,裡面有一些相關的巨集定義。另外,整數的範圍可以看。

2樓:電子產品第一線

float和double的範圍是由指數的位數來決定的。

float的指數位有8位,而double的指數位有11位,分佈如下:

float:

1bit(符號位) 8bits(指數位) 23bits(尾數位)double:

1bit(符號位) 11bits(指數位) 52bits(尾數位)於是,float的指數範圍為-127~+128,而double的指數範圍為-1023~+1024,並且指數位是按補碼的形式來劃分的。

其中負指數決定了浮點數所能表達的絕對值最小的非零數;而正指數決定了浮點數所能表達的絕對值最大的數,也即決定了浮點數的取值範圍。

float的範圍為-2^128 ~ +2^128,也即-3.40e+38 ~ +3.40e+38;double的範圍為-2^1024 ~ +2^1024,也即-1.

79e+308 ~ +1.79e+308。

c語言中單精度和雙精度浮點型資料的有效數值怎麼算出來的?

3樓:蓋望亭龐亥

這個最好去看一下計算機組成,裡面講到float數的表示方法,比如float數,計算機裡面的儲存形式是32位,第一位是符號位,第2~9這8位是2的n次方中的n,也就是階碼,階碼範圍:±127,

單精度階碼:決定浮點數的數值範圍。float絕對值最大最小:2^(±127)≈10^(±38)

雙精度階碼:決定浮點數的數值範圍。double絕對值最大最小:2^(±1023)≈10^(±306)

c語言單精度與雙精度的區別?

4樓:匿名使用者

其實就是有效位du數不zhi

一樣。浮點型變數分為單精度dao(float)、雙精版度(double)和長雙精度(long double)3類。在turbo c 中:

位元(位)權數 有效數字

float 32 6-7double 64 15-16long double 128 18-19ansi c 並未具體規定每種型別資料的長度、精度、數值範圍,有的系統將double所增加的32位全用於存放小數部分,這樣可以增加數值的有效範圍,減少舍入誤差。有的系統則將所增加的位(bit)一部分存放指數部分,這樣可以擴大數值範圍

5樓:匿名使用者

c中沒有單精度的說法,一般就叫浮點型float。雙精度是double,這兩個的區別是在win32和linux下,float型別佔4位元組回,答double型別佔8位元組,因為double佔8位元組,自然雙精度的有效資料位比float型別多,更精確

6樓:匿名使用者

單精度實型 float 佔4個位元組

能保證6位有效數字,取值範圍為-3.4*10的-38次方至3.4*10的38次方。

雙精度實型 double 佔專8個位元組

能保證15位有效屬數字,取值範圍為-1.7*10的-308次方至1.7*10的308次方

7樓:匿名使用者

佔用記憶體空間不一樣,單精度4位元組,雙8……

8樓:匿名使用者

精度不一樣 位數不一樣啊

c語言中什麼是單精度型和雙精度型???各舉個例子。。。

9樓:匿名使用者

單精度型和雙精度型的區別在於它們的精確程度不一樣,也就是小數部分的有效位數不一樣。62616964757a686964616fe58685e5aeb931333431356664

單精度數(float型)在32位計算機中儲存佔用4位元組,也就是32位,有效位數為7位,小數點後6位;雙精度數(double型)在32位計算機中儲存佔用8位元組,也就是64位,有效位數為16位,小數點後15位。

比如3.1415926535897932384這個小數,如果定義成float型,那麼只會留下小數點後5位,也就是3.141592,如果定義成double型,那麼只會留下小數點後15位,也就是3.

141592653589793。

擴充套件資料

計算機的數都是以二進位制進行儲存。無論是單精度浮點數還是雙精度浮點數,在計算機上的儲存都遵循ieee 754規範,使用二進位制科學計數法。

二進位制科學計數法包含三個部分:符號位,指數位和尾數部分。單精度數的符號位,指數位和尾數部分分別為1,8,23,而雙精度為1,11,52。

而單雙精度中的精度就主要取決於尾數部分的位數。float的尾數尾數為23位,除去全部為0的情況以外,最小為2的-23次方,因此float小數部分只能精確到後面6位。類似的,double尾數位數為52,最小為2的-52次方,因此只能精確到小數點後15位。

10樓:匿名使用者

單精度就是

復float型別,是4個位元組的制,因此精度bai沒有那麼高雙精度就是double型別du,zhi是8個位元組的,可以表示的數字當dao然就更多,小數點後面的精度也越高

float f; // 是4個位元組的單精度變數double d; // 是8個位元組的雙精度變數

11樓:匿名使用者

float(10%3)結果是1.000000即七位小數點後保留。

double (10%3)就是15位。

說到底就是個精度的問題望採納

12樓:5千零一

float是單精度型4位元組,double是雙精度型8位元組

13樓:金色潛鳥

c語言中 單精度

型和bai雙du精度型 指兩種 型別 的 浮點數zhi。

單精度型dao 即 float 型, 有效數字專約屬10進位制7位

雙精度型 即 double 型, 有效數字約10進位制15位

所以能描述的數值精度不同。

c語言 資料 用 ieee 754 國際標準。float 型 用 4 位元組存放,double 型 用 8 位元組存放。

single precision 2進位制: 數符1位,指數8 位,尾數 23 位

double precision 2進位制: 數符1位,指數11 位,尾數 52 位

單精數值範圍: ± ~10的-44.85次方 到 約 10的38.53次方

雙精度數值範圍 ± ~10的-323.3 次方 to 約 10的 308.3次方。

float a=1.234567;

double b=1.2345678901234;

-------------

10%3 整除取餘數,得 1。

1 用 float 和 double 表示,精度沒有區別。 a=(float)(10%3); b=(double)(10%3);

強制轉換 要帶 小括號。

14樓:程式猿3號

float是單精度型,double是雙精度型,例子:

float a;

double b;

。。。。。。。。。。。

請問c語言中的float和double型別有什麼區別?什麼叫做單精度和雙精度?

15樓:碧血玉葉花

c語言中 單精度型

和bai雙精度型 指兩種du 型別 的 浮點數zhi

。單精度型dao 即回 float 型, 有效數字約10進位制答7位

雙精度型 即 double 型, 有效數字約10進位制15位

所以能描述的數值精度不同。

c語言 資料 用 ieee 754 國際標準。float 型 用 4 位元組存放,double 型 用 8 位元組存放。

single precision 2進位制: 數符1位,指數8 位,尾數 23 位

double precision 2進位制: 數符1位,指數11 位,尾數 52 位

單精數值範圍: ± ~10的-44.85次方 到 約 10的38.53次方

雙精度數值範圍 ± ~10的-323.3 次方 to 約 10的 308.3次方。

float a=1.234567;

double b=1.2345678901234;

-------------

10%3 整除取餘數,得 1。

1 用 float 和 double 表示,精度沒有區別。 a=(float)(10%3); b=(double)(10%3);

強制轉換 要帶 小括號。

16樓:某某匿名網友

sizeof(float)是4,sizeof(double)是8,精度高,有效數字多

c語言中單精度和雙精度有什麼區別

單精度,也就是 float 在 32 位機器上用 4 個位元組來儲存的 而雙精度都是用 8 個位元組來儲存的。這是他們最本質的區別。由於儲存位不同,他們能表示的數字的範圍也不同,具體能表示多大的範圍,查一下手冊就知道了。精度不一樣,表示數的範圍也不一樣 回答你好 c語言中,單精度浮點型為float,...

單精度數,雙精度數,整數,長整數的區別

八哥說科技 1 資料長度不同 單精度浮點數用4位元組儲存。雙精度浮點數用8位元組儲存,一般用於計算機變成中定義變數,佔用8個位元組儲存空間。整型在記憶體中可能佔2或4個位元組 通常分別在16位機和32位機上 其取值為基本整常數。長整型,長度至少32位,而64位類unix系統為64位。2 型別說明符不...

單精度和雙精度有什麼不同,什麼是單精度和雙精度

如此 青春 單精度浮點數和雙精度浮點數有以下區別 1 所佔的記憶體不同 單精度浮點數佔用4個位元組 32位 儲存空間來儲存一個浮點數,包括符號位1位,階碼8位,尾數23位。而雙精度浮點數使用 8個位元組 64位 儲存空間來儲存一個浮點數,包括符號位1位,階碼11位,尾數52位。2 所存的數值範圍不同...