c語言float范圍
① c語言中int,float,double,char四種數據類型所能表示的數據范圍是多少
數據范圍:
1、char 1位元組
2、short 2位元組
3、int 4位元組
4、long 4位元組
5、long long 8位元組
6、float 4位元組
7、double 5位元組
8、long double 12位元組
② float在C語言中是什麼意思具體的。double呢謝謝!
float在C語言中是 單精度浮點數, double 是雙精度浮點數。它們精度不同,能表示的數值范圍大小不同。
單精度浮點數,4位元組, 字長32位,有一位符號位,指數位共8位,尾數共23位。 指數能夠表示的指數范圍為-128~127。float的精度為6~7位有效數字。 float的范圍為-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38。
double: 8位元組, 字長64位,有一位符號位 11bits(指數位), 52bits(尾數位),指數能夠表示的指數范圍為 -1023~+1024。double的精度為15~16位。double的范圍為-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。
===
在程序中,它們可用於聲明變數類型,例如 float a=1.23; double d=123.45; 。
若帶小括弧, 例如:x = (float) b; y=(double) c; 則表示 類型強制轉換。
若在註解行中 , 例如: /* vx is float type, z is double type */ 則為註解。
若用雙引號括起來,則是字元串,例如:
char s1[]="This is float !", s2[]="That is double !"; //字元串常量。
③ C語言中為什麼float型數據的范圍是3.4E-38~3.4E+38
因為float所佔的位數決定了他的大小
位數就是計算機的存儲所需要的bit多少
32位浮點,64位雙精度浮點范圍不同
//////////////////////
以前學計算系統基礎的時候有這么個說法
計算機存儲的形式都是01了,
在32位的01中,第一位表示正負,最後8位表示指數,中間的表示小數。
最後化成1.幾的形式的多少次方
那是自己定義的。
c也有自己的定義方法吧:
對於單精度浮點數來說,有階碼8位表示正負
當尾數渠道全1時再加上小數點前面的1,階碼取到最大正數127(8位,正數最大127,負數最小-128),浮點數渠道正數的最大值。
+1.111111111111111111111*2^127
1.後面23個1
約等於2*2^127=3.4*10^38
負數亦然
④ C語言中float是什麼意思
float是C語言中的一個數據類型的關鍵字,表示單精度浮點型(雙精度浮點型為double)。
定義格式為:float
a;
//
a表示一個浮點型的變數
C語言規定浮點型在內存佔用4個位元組,精度為7位,取值范圍為:3.4*10^-38
~3.4*10^38或者-(3.4*10^-38
~3.4*10^38)
⑤ c語言中int 和float 形數據的限制是多少
c語言標准庫提供了limits.h和float.h用於說明整數和浮點型數據的限制。
limits.h:用於檢測整型數據數據類型的表達值范圍。
float.h :提供了浮點型的范圍和精度的宏,該頭文件沒有類型和函數的定義,一般用於數值分析。
可以直接使用裡面定義的宏,比如下面的代碼輸入有符號int類型的最大值和最小值,以及float類型的最大值和最小值。
#include<stdio.h>
#include<limits.h>
#include<float.h>
intmain()
{
printf("int最大值:%d 最小值:%d ",INT_MAX,INT_MIN);
printf("float最大值:%e 最小值%e ",FLT_MAX,FLT_MIN);
return0;
}
⑥ 關於c語言float取值范圍
你的問題好奇怪:2能轉換成3.4?沒聽說過!你只能這么理解:2X2^127和3.4X10^38相等或近似,是分別用二進制冪和10進制冪表示的同一個數。用計算器輸入2的128次方,結果就是3.40.....x10的38次方。2x10^2=40x5,不該說2怎麼轉換成40、10^2怎麼轉換成5的吧?另外建議不鑽這種牛角尖,知道float是4位元組,表示 的數有個范圍就行了,不然你幾天才能看一頁啊?以後類似的情況多著呢!
⑦ 在C語言中float數據數值范圍是多少
C語言中,float 為單精度浮點數,佔4位元組,其數值范圍為3.4E-38 ~3.4E+38或者-(3.4E-38 ~3.4E+38)
float的指數位有8位,尾數位有23位,符號位1位。
於是,float的指數范圍為-127~+128,按補碼的形式來劃分。
其中負指數決定了浮點數所能表達的絕對值最小的非零數;而正指數決定了浮點數所能表達的絕對值最大的數,也即決定了浮點數的取值范圍。
所以,float的范圍為-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38
⑧ C語言中float型數據表示的最大數字到底是多少啊
float類型所能表示的最大數字為3.4*10^38,即3.4E38。
float是C語言中的一個數據類型的關鍵字,表示單精度浮點型(雙精度浮點型為double)。
定義格式為:
float
a;
//
a表示一個浮點型的變數
C語言規定浮點型在內存佔用4個位元組,精度為7位,取值范圍為:3.4*10^-38
~3.4*10^38或者-(3.4*10^-38
~3.4*10^38)
⑨ 求C語言中float型數據的表示範圍
為什麼是38次方啊,我也不知道,可以說下嗎?我知道了,因為在計算機裡面二進制的表示數最大是一位是1而一個十進制3.4也就是二進制的11啊.是不是啊,樓主,你說呢?
float是國際上不建議使用的數據類型 因為國際上的float標准有問題 他實際上是取決於你的編譯器
float型數據是按照底數+指數格式存儲的,一半來說一個float類型的變數佔用32個位元組來存儲,其中有7~8位保存指數,剩下的24~25位保存底數部分。因此底數部分的最大值就是
2^25 - 1=33554431,3.4就是這么來的
⑩ C語言中float到底能存多大的數!
-------符號位--指數位----小數部分----(指數偏移量 )
單精度浮點數-1位[31]--8位 [30-23]-23位 [22-00]----(127)
一般情況下,
int在內存里以2進制補碼存儲,跟你想的差不多,這個就不用多說了;
float存儲方式如上面所示,1位符號位,指數位8位,小數位23位,共32位即4個位元組。假設小數位表示的純小數為x,指數表示的數字為n,符號為負,則這個float數字為(-(1+x))×(2^n)。
純小數部分用補碼表示,小數位的位數與可以表示的數據范圍無關,只與可以表示的有效數字有關,即表示精度有關。
指數位部分用移碼表示,所以可以表示的大小是2^-127到2^128,即最大的數是2^128=3.4E38。也就是說表示範圍是-3.4E-38到3.4E38。