A. c語言中的float是什麼意思
實數的意思,float是C語言中的一個數據類型的關鍵字,表示單精度浮點型(雙精度浮點型為double)。
float是C語言的基本數據類型中的一種,表示單精度浮點數,C語言規定單精度浮點型在內存佔用4個位元組,精度為7位,取值范圍為:3.4*10^-38 ~3.4*10^38或者-(3.4*10^-38 ~3.4*10^38)
用他可以定義單精度浮點型變數,如float a;即定義了一個電精度浮點型變數a。
簡介
C語言是一門面向過程的計算機編程語言,與C++、C#、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%-20%。因此,C語言可以編寫系統軟體。
B. C語言中float是什麼類型
C語言中float是:單精度浮點型數據類型。
浮點型數據類型,FLOAT 數據類型用於存儲單精度浮點數或雙精度浮點數。浮點數使用IEEE(電氣和電子工程師協會)格式。浮點類型的單精度值具有 4 個位元組,包括一個符號位、一個 8 位 二進制指數和一個 23 位尾數。
由於尾數的高順序位始終為 1,因此它不是以數字形式存儲的。此表示形式為 float 類型提供了一個大約在 -3.4E+38 ~ 3.4E+38 之間的范圍。
應用經驗:
float浮點數兩個浮點數不相等和精度的問題,在實際開發中,經常用整數代替浮點數,因為整數是精確的,效率也更高。
例如人的身高一米七五,以米為單位,用浮點數表示是1.75米,如果以厘米為單位,用整數表示是175。
在 C 和 C++ 中,如下賦值語句:
floata=0.1;編譯器報錯:warning C4305: 'initializing' : truncation from 'const double ' to 'float '
原因:在 C/C++ 中,上述語句等號右邊 0.1,認為是個 float,但是編譯器卻把它認為是個 double(因為小數默認是 double),所以要報這個 warning,一般改成0.1f就沒事了。
以上內容參考:網路-FLOAT
C. float在C語言中是什麼意思具體的。double呢謝謝!
float代表(單精度)浮點型,一般用4位元組來表示一個浮點數。
double代表雙精度浮點型,一般用8位元組來表示一個浮點數。
D. float在c語言中的意思
浮點型數據類型。
C語言中float浮點型數據類型,FLOAT數據類型用於存儲單精度浮點數或雙精度浮點數。FLOAT數據類型用於存儲單精度浮點數或雙精度浮點數,浮點數使用IEEE(電氣和電子工程師協會)格式。
浮點類型的單精度值具有4個位元組,包括一個符號位、一個8位excess-127二進制指數和一個23位尾數,尾數表示一個介於1.0和2.0之間的數,由於尾數的高順序位始終為1,因此它不是以數字形式存儲的。
特點:
浮點型數據類型,通俗點講利用指數使小數點的位置可以根據需要而上下浮動,從而可以靈活地表達更大范圍的實數。
float佔用32位存儲空間的單精度(single-precision)值。在一些處理器上比雙精度更快而且只佔用雙精度一半的空間,但是當值很大或很小的時候,它將變得不精確。當你需要小數部分並且對精度的要求不高時,浮點型的變數是有用的。
在計算機系統的發展過程中,曾經提出過多種方法表示實數,但是到目前為止使用最廣泛的是浮點表示法。相對於定點數而言,浮點數利用指數使小數點的位置可以根據需要而上下浮動,從而可以靈活地表達更大范圍的實數。
E. 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)
F. c語言裡面的float是什麼意思
意思是浮點型數據類型,通俗點講利用指數使小數點的位置可以根據需要而上下浮動,從而可以靈活地表達更大范圍的實數。
float
佔用32位存儲空間的單精度(single-precision
)值。在一些處理器上比雙精度更快而且只佔用雙精度一半的空間,但是當值很大或很小的時候,它將變得不精確。當你需要小數部分並且對精度的要求不高時,浮點型的變數是有用的。
在計算機系統的發展過程中,曾經提出過多種方法表示實數,但是到目前為止使用最廣泛的是浮點表示法。相對於定點數而言,浮點數利用指數使小數點的位置可以根據需要而上下浮動,從而可以靈活地表達更大范圍的實數。
(6)c語言float編碼擴展閱讀:
1、float的作用:
FLOAT
數據類型用於存儲單精度浮點數或雙精度浮點數,浮點數使用 IEEE(電氣和電子工程師協會)格式。
浮點類型的單精度值具有
4
個位元組,包括一個符號位、一個
8
位
excess-127
二進制指數和一個
23
位尾數,尾數表示一個介於
1.0
和
2.0
之間的數,由於尾數的高順序位始終為
1,因此它不是以數字形式存儲的。
此表示形式為
float
類型提供了一個大約在
-3.4E+38
和
3.4E+38
之間的范圍。
2、如果存儲比精度更重要,請考慮對浮點變數使用
float
類型。相反,如果精度是最重要的條件,則使用
double
類型。
參考資料:搜狗網路-FLOAT
搜狗網路-浮點型
G. C語言里的 float 是什麼啊
浮點型變數
浮點型簡單講就是實數的意思
浮點數在計算機中用以近似表示任意某個實數。具體的說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學記數法。
浮點計算是指浮點數參與的運算,這種運算通常伴隨著因為無法精確表示而進行的近似或舍入。
一個浮點數a由兩個數m和e來表示:a = m × be。在任意一個這樣的系統中,我們選擇一個基數b(記數系統的基)和精度p(即使用多少位來存儲)。m(即尾數)是形如±d.ddd...ddd的p位數(每一位是一個介於0到b-1之間的整數,包括0和b-1)。如果m的第一位是非0整數,m稱作規格化的。有一些描述使用一個單獨的符號位(s 代表+或者-)來表示正負,這樣m必須是正的。e是指數。
這種設計可以在某個固定長度的存儲空間內表示定點數無法表示的更大范圍的數。
例如,一個指數范圍為±4的4位十進制浮點數可以用來表示43210,4.321或0.0004321,但是沒有足夠的精度來表示432.123和43212.3(必須近似為432.1和43210)。當然,實際使用的位數通常遠大於4。
此外,浮點數表示法通常還包括一些特別的數值:+∞和−∞(正負無窮大)以及NaN('Not a Number')。無窮大用於數太大而無法表示的時候,NaN則指示非法操作或者無法定義的結果。
大部份計算機採用二進制(b=2)的表示方法。位(bit)是衡量浮點數所需存儲空間的單位,通常為32位或64位,分別被叫作單精度和雙精度。有一些計算機提供更大的浮點數,例如英特爾公司的浮點運算單元Intel8087協處理器(以及其被集成進x86處理器中的後代產品)提供80位長的浮點數,用於存儲浮點運算的中間結果。還有一些系統提供128位的浮點數
浮點數使用IEEE754浮點標準保存
以下內容需要知道二進制小數轉換十進制計算方法和整數一樣,都是對每一位用2的冪加權。
IEEE浮點標准用 V = (-1)^s * M * 2^E的形式表示
V就是值
符號(sign)s決定正負,對於0有特殊處理
有效數(significand)M是一個二進制小數,范圍在1~2或0~1之間
指數(exponent)E是2的冪(可以是負數),對浮點數加權
浮點數劃分成3個域
一個單獨符號位編碼s
k位指數域 exp = e(k-1)...e(1)e(0)編碼指數E
n位小數域 frac = f(n-1)...f(1)f(0)編碼有效數M,但被編碼的值依賴於指數域是否為零。
在C/C++中的float下 s有1位,exp有k=8位,frac有n=23位,double變數下k=11,n=52
根據exp的值,編碼分三種狀況:
1.規格化值
最普遍的狀況,當exp的位模式既不是全為0也不是全為1時,就都屬於這種狀況。此時,指數域解釋為偏置形式,E = e-Bias(e減Bias),e是無符號數,而Bias是一個等於2^(k-1) -1的偏置值。由此產生了指數的取值范圍,float: -126~127,double: -1022~1023
小數域解釋為描述小數值f,在0~1之間,有效數定義為M = 1+f,這樣隱含了開頭的1,免費獲得了一個額外的精度位
2.非規格化值
指數域全為0,就是非規格化的值,此時,指數值是 E = 1 - Bias(Bias定義同上),有效數的值是 M = f,沒有開頭的1。值得注意的是這種方法對0的表示。+0.0的浮點表示中,位模式全為0:符號位是0,指數域全0,小數域也是0。而-0.0隻有符號位是1,其他全0
3.特殊值
指數域全為1,就是這類數。
當小數域全為0時,得到的值表示無窮,s=0正無窮,s=1負無窮。當這兩個非常大的數相乘或對某數除以0可以得到溢出的結果。 當小數域非0時結果被稱作NaN,即not a number。一些運算結果不能表示為無窮或實數,就返回NaN,例如對-1開根號。
數值舉例:
以8位浮點舉例,32位和64位的以此類推
0的表示: 位表示0 0000 000(符號位,指數位,小數位,下同), e=0,E=1-7=-6,f=0,M=0, V=0
最小的非規格化數:(不考慮負數)
位表示 0 0000 001 此時 e=0; E=-6; f= 1/8; M=1/8; V = 1/512
即 f = 0*2^(-1)+0*2^(-2)+0*2^(-3)
V = f * 2^E
最大的非規格化數
位表示0 0000 111 表示 7/512
最小的規格化數
位表示0 0001 000
e=1; E= e - Bias = 1-7=-6; f = 0; M = 1+f = 1
V= M * 2^E = 8/512
最大的規格化數
位表示0 1110 111
e=14; E= 14-7=7; f=7/8; M = 15/8; V = 240
對於雙精度浮點
最小規格化數 2.2*10^-308 = 1*2^-1022
最大規格化數 1.8*10^308 = (2-epsilon)*2^1023
H. C語言里float類型變數問題
c語言float類型是單精度浮點類型。
對於每一個浮點數,二進制編碼的表示:(-1)^s
*
m
*
e。
s:是指的符號位,有兩種取值,為0時,表示正浮點數。為1時表示負的浮點數。
m:是有效位數。
e:是指數。實際上這是一個偏置指數。
一般來說,float單精度浮點類型佔32個二進制位,其中s符號位佔1位,m有效數位佔23位,e指數位佔8位。
I. C語言 float
float是C語言的基本數據類型中的一種,表示單精度浮點數。
C語言規定單精度浮點型在內存佔用4個位元組,精度為7位,取值范圍為:3.4*10^-38 ~3.4*10^38或者-(3.4*10^-38 ~3.4*10^38)
可以定義單精度浮點型變數,如float a;即定義了一個電精度浮點型變數a。相關類型:double表示雙精度浮點數。
(9)c語言float編碼擴展閱讀:
構成:
浮點數在機內用指數型式表示,分解為:數符,尾數,指數符,指數四部分。
數符占 1 位二進制,表示數的正負。
指數符占 1 位二進制,表示指數的正負。
尾數表示浮點數有效數字,0.xxxxxxx, 但不存開頭的 0 和點。
指數存指數的有效數字。
指數佔多少位,尾數佔多少位,由計算機系統決定。
區別:
可根據應用程序的需求將變數聲明為 float 或 double。這兩種類型之間的主要差異在於它們可表示的基數、它們需要的存儲以及它們的范圍。
在 C 和 C++ 中,如下賦值語句:
1 floata=0.1;
編譯器報錯:warning C4305: 'initializing' : truncation from 'const double ' to 'float '
原因:在 C/C++ 中,上述語句等號右邊 0.1,認為是個 float,但是編譯器卻把它認為是個 double(因為小數默認是 double),所以要報這個 warning,一般改成0.1f就沒事了。
網路-float
J. c語言程序的float變數,其內部編碼是0xBD600000,求實數真值是多少
0xBD600000——按規則寫成二進制是1 01111010 11000000000000000000000。最前面的1表示這個數是負數;接著的8位是階碼,用移碼表示,前面的0表示小數點要向左移,剩下7位以移碼演算法是1111111-1111010==0000101==5(10),表示尾數的二進制小數點要向左移動5位就是真值;剩下23位是尾數,按尾數規則它表示1.11(+21個0)。將尾數1.11(+21個0)的小數點向左移動5位是0.0000111(+21個0),代入最前面的負號就是-0.0000111(+21個0),把這個數換算成十進制就是-0.0546875。