軟浮點與硬浮點有什麼區別,浮點型與實型有什麼區別

2023-01-25 05:40:49 字數 5085 閱讀 7092

1樓:許詩文

軟浮點是通過浮點庫去實現浮點運算的,效率低;硬浮點是通過浮點運算單元(fpu)來完成的,效率高。

(1)硬浮點(hard-float)

編譯器將**直接編譯成硬體浮點協處理器(浮點運算單元fpu)能識別的指令,這些指令在執行的時候arm核直接把它轉給協處理器執行。fpu 通常有一套額外的暫存器來完成浮點引數傳遞和運算。使用實際的硬體浮點運算單元(fpu)會帶來效能的提升。

(2)軟浮點(soft-float)

編譯器把浮點運算轉成浮點運算的函式呼叫和庫函式呼叫,沒有fpu的指令呼叫,也沒有浮點暫存器的引數傳遞。浮點引數的傳遞也是通過arm暫存器或者堆疊完成。現在的linux系統預設編譯選擇使用hard-float,如果系統沒有任何浮點處理器單元,這就會產生非法指令和異常。

因而一般的系統映象都採用軟浮點以相容沒有vfp的處理器。

2樓:匿名使用者

硬浮點指的是浮點數協處理器

軟浮點指的是gcc等編譯器的浮點數模擬協處理器

浮點型與實型有什麼區別?

3樓:冷曼華夕淑

1、實型資料包括實型常量、實型變數。

2、實型變數包括單精度浮點數和雙精度浮點數。

3、單、雙精度浮點型統稱浮點型。

4、如果用float表示浮點型,用real表示實型,float包含real,比如sql

server裡。

5、c語言裡沒有real型變數,float和double都表示實型變數。

浮點型別說明浮float,double有什麼區別啊

4樓:憶江南憶夢

浮點型別說明浮float,double區別:在記憶體中佔有的位元組數不同、有效數字位數不同、數值取值範圍、在程中處理速度不同

1、在記憶體中佔有的位元組數不同:

單精度浮點數在機記憶體佔4個位元組,雙精度浮點數在機記憶體佔8個位元組。

2、有效數字位數不同:

單精度浮點數有效數字8位,雙精度浮點數有效數字16位。

3、數值取值範圍:

單精度浮點數的表示範圍: -3.40e+38~3.40e+38,雙精度浮點數的表示範圍: -1.79e+ 308~-1.79e+308。

4、在程中處理速度不同:

一般來說, cpu處理單精度浮點數的速度比處理雙精度浮點數快,如果不宣告,預設小數為double型別,所以如果要用float的話,必須進行強轉。

5樓:靠名真tm難起

float : 單精度浮點數    double : 雙精度浮點數兩者的主要區別如下:

1.在記憶體中佔有的位元組數不同

單精度浮點數在機記憶體佔4個位元組

雙精度浮點數在機記憶體佔8個位元組

2.有效數字位數不同

單精度浮點數有效數字8位

雙精度浮點數有效數字16位

3.數值取值範圍

單精度浮點數的表示範圍:-3.40e+38~3.40e+38雙精度浮點數的表示範圍:-1.79e+308~-1.79e+3084.在程式中處理速度不同

一般來說,cpu處理單精度浮點數的速度比處理雙精度浮點數快,如果不宣告,預設小數為double型別,所以如果要用float的話,必須進行強轉

例如:float  a=1.3; 會編譯報錯,正確的寫法 float a = (float)1.3;或者float a = 1.3f;(f或f都可以不區分大小寫)。

6樓:高金山

基本上沒有什麼區別,都是表示小數

不過它們的寬度不一樣,或者說精度不一樣,float是單精度,double是雙精度

它們表示小數的範圍不一樣,double能表示的範圍,比float大double在記憶體中,佔8個位元組,float佔4個位元組float和double的關係就像short跟long的關係一樣

7樓:匿名使用者

單精度浮點數(float)與雙精度浮點數(double)的區別如下:

(1)在記憶體中佔有的位元組數不同

單精度浮點數在機內佔4個位元組

雙精度浮點數在機內佔8個位元組

(2)有效數字位數不同

單精度浮點數有效數字8位

雙精度浮點數有效數字16位

(3)所能表示數的範圍不同

單精度浮點的表示範圍:-3.40e+38 ~ +3.40e+38雙精度浮點的表示範圍:-1.79e+308 ~ +1.79e+308(4)在程式中處理速度不同

一般來說,cpu處理單精度浮點數的速度比處理雙精度浮點數快

8樓:_鈊_煩_薏亂

精度double更高一些,而且你輸入小數的話會被預設識別為float.

精度要求高的時候用double,一般情況用float能行就用float.

9樓:琞辷

肯定有區別啦,float是單精度浮點型,而double是雙精度浮點型,一般情況下,float是佔4個位元組,double佔8個位元組。

一般要是你計算的資料不是很大的話用float就足夠了。

10樓:

float的數值範圍是-3.4*10e-38~3.4*10e38,

而double是-1.7*10e-308~1.7*10e308

如果是一般學的c語言程式的話,用float就基本夠了.

11樓:匿名使用者

float 沒有double精確,float是4個位元組,double 8個,所以更精確。看你需求了,一般float就夠了。

不過還是要注意一下型別轉換,象(float) ,(double)這種東西千萬不要懶

什麼是浮點數啊?

12樓:匿名使用者

浮點數,是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體的說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學計數法。

浮點計算是指浮點數參與的運算,這種運算通常伴隨著因為無法精確表示而進行的近似或舍入。

一個浮點數a由兩個數m和e來表示:a = m × b^e。在任意一個這樣的系統中,我們選擇一個基數b(記數系統的基)和精度p(即使用多少位來儲存)。

m(即尾數)是形如±d.ddd...ddd的p位數(每一位是一個介於0到b-1之間的整數,包括0和b-1)。

如果m的第一位是非0整數,m稱作規格化。

13樓:沒事扯扯蛋

浮點數是表示小數的一種方法。所謂浮點就是小數點的位置不固定,與此相反有定點數,即小數點的位置固定浮點數的實現在各種平臺上差異很大,有的處理器有浮點運算單元(fpu,floatingpointunit),稱為硬浮點(hardfloat)實現。

整數可以看做是一種特殊的定點數,即小數點在末尾。8086/8088中沒有浮點數處理指令,不過從486起,cpu內建了浮點數處理器,可以執行浮點運算。

一般的浮點數有點象科學計數法,包括符號位、指數部分和尾數部分。 有的處理器沒有浮點運算單元,只能做整數運算,需要用整數運算來模擬浮點運算,稱為軟浮點(softfloat)實現。

14樓:美食的小小心思

浮點數是什麼?浮點數的表示和運算今天就來學習一下

15樓:匿名使用者

所謂浮點數,通俗的說法就是,小數。

小數分為大於1的和不大於1的,都要用計算機表示,怎麼表示呢,用科學計數法,例如12.3456可以表示成1.23456*10^1也可以表示為0.

123456*10^2,看見了嗎,小數點在浮動,所以叫浮點數。

它的具體用處就是使計算更有精度,但是佔用的記憶體也會增加。

16樓:匿名使用者

浮點數可以簡單的理解為小數,

有些老師會教你浮點數在記憶體中是這樣存的是 底 指數 這樣的形式

可以說完全不對,真正浮點數在記憶體中儲存的方式非常複雜,一共有七種情況由於指數太多不好打出來,

你可以查閱:(標準ieee 745)名稱為:

standard for binary floating decimal point ansi/ieee 745

這就是浮點數的標準文件,上面詳細的規定了浮點數和雙精度數如何儲存,瞭解了以後你就可以自己計算浮點數的取值範圍以及為什麼有一些值取不到還有為什麼會有精度的問題,可是計算相當麻煩。

希望對你有所幫助

17樓:匿名使用者

浮點數就是跟小數差不多的。

18樓:

哦(´-ω-`)嗯嗯嗯嗯嗯嗯嗯嗯嗯好的人嗎你

浮點和浮比有何區別?

19樓:匿名使用者

浮點是根據基礎利率上浮或下浮一定比例,浮點利率是浮動的點數是確定額度。

單精度浮點和雙精度浮點有什麼區別

定點和浮點有什麼區別?

20樓:

1、定點數:

定點數指小數點在數中的位置是固定不變的,通常有定點整數和定點小數。在對小數點位置作出選擇之後,運算中的所有數均應統一為定點整數或定點小數,在運算中不再考慮小數問題。

(1)定義:資料中小數點位置固定不變的數

(2)種類:定點整數

(3)小數點在符號位與有效位之間。

注:定點數受字長的限制,超出範圍會有溢位。

2、浮點數:

浮點數中小數點的位置是不固定的,用階碼和尾數來表示。通常尾數為純小數,階碼為整數,尾數和階碼均為帶符號數。尾數的符號表示數的正負;階碼的符號則表明小數點的實際位置。

(1)形式:n=m×2e

(2)m:尾數

(3)e:階碼

(4)在計算機中m和e表示形式為

階碼 尾數符號 尾數

將其與數學中的科學記數法進行比較。

注:其浮點數的精度由尾數決定,數的表示範圍由階碼決定。

3、定點數與浮點數區別

定點表示法運算直觀,但數的表示範圍較小,不同的數運算時要考慮比例因子的選取,以防止溢位。浮點表示法運算時可以不考慮溢位,但浮點運算,程式設計較難。要掌握定、浮點數的轉換方法及浮點數規格化方法。