當前位置:首頁 » 編程語言 » c語言中單精度和浮點型
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中單精度和浮點型

發布時間: 2022-06-07 20:28:40

c語言中的單精度和雙精度浮點型的區別!3.14是哪種3.14159呢

3.14是單精度,3.14159是雙精度。

兩者區別如下:

一、指代不同

1、單精度:是指計算機表達實數近似值的一種方式。

2、雙精度:此數據類型與單精度數據類型(float)相似,但精確度比float高。


二、佔用空間不同

1、單精度:范圍在負數的時候是從 -3.402823E38 到 -1.401298E-45,而在正數的時候是從 1.401298E-45 到 3.402823E38 。

2、雙精度:雙精度型佔8 個位元組(64位)內存空間,其數值范圍為-1.79769313486232E308 到1.79769313486232E308。

三、特點不同

1、單精度:數值比以上值小的時候,將會由於尾數的有效位數減少而逐步喪失精度(IEEE 754的規定),或者有的系統則直接採用0值來簡化處理過程。

2、雙精度:編譯時所佔的內存空間依不同的編譯器而有所不同,是double float數據類型,C/C++中表示實型變數的一種變數類型。


Ⅱ c語言中,常量,變數,浮點,單精度,雙精度是什麼意思舉例

實型常量又稱實數或浮點數。在C語言中可以用單精度型和雙精度型兩種形式表示實型常量,分別用類型名float和double進行定義。

實型常量在一般的微型集中佔用4個位元組,一般形式或者指數形式,數值范圍都是-1038~1038,有效數字是7位。

浮點型數據又分為單精度型(float)和雙精度型(double)兩種。

1、單(float):佔用比特數32,有效數位6-7,數值范圍(-3.4e-38~3.4e+38)

2、雙(double):佔用比特數64,有效數位15-16,數值范圍(-1.7e-308~1.7e+308)

(2)c語言中單精度和浮點型擴展閱讀

c語言中,數據類型分為整形、實型和指針類型(以下內容均表示在32位操作系統中):

其中整形分為char,shortint,longint,longlong,各種類型的使用,前面都可以加上unsigned表示無符號char字元類型,表示的大小為-128~127,大小為一個位元組;

其中0-127被編為ASCⅡ碼shortint短整形-65536~655352個位元組longint整形-20億多~20億多4個位元組longlong長整型8個位元組longint通常寫為int代表的是CPU字長;

在32為操作系統中cpu的字長是32位,即4個位元組實行(浮點型)分為float和double:float6~7位有效數字4個位元組double15~16位有效數字8個位元組在現代CPU中,有一個協處理器專門進行浮點數的運算;

然後根據類型進行精度截取指針類型32位無符號整數,即unsignedint,但是它只能表示內存中一個比特的空間的編號註:32位CPU的內存定址范圍是從32個0到32個1,總計4GB,所以,32位操作系統最高只支持4G內存。

Ⅲ c語言中單精度浮點型和雙精度浮點型分別可以保留幾位小數

小數點後是幾位與單精度或雙精度無關,輸出浮點數時%.xf中的x確定輸出多少位小數,如%.12f就把對應的浮點變數值輸出12位小數。但是,由於浮點數的長度都是有限的,float的精度是7位左右(包括整數部分),double的精度為16位左右(同樣包括整數部分),當x值大到超出對應變數類型的最大表達能力時,後續數字實際上是系統填上的垃圾數,沒有實際意義。

Ⅳ C語言怎麼表示單精度浮點數

在C語言源碼中,只能在浮點數後面加f來表示單精度浮點數。例如:float f=1.0f
單精度浮點數(Single)
用來表示帶有小數部分的實數,一般用於科學計算。
佔用4個位元組(32位)存儲空間,包括符號位1位,階碼8位,尾數23位。其數值范圍為-3.4E38~3.4E38,單精度浮點數最多有7位十進制有效數字,單精度浮點數的指數用"E"或"e"表示。
單精度浮點數有多種表示形式:±n.n(小數形式) ±n E ±m(指數形式) ±n.n E ±m (指數形式)
如果某個數的有效數字位數超過7位,當把它定義為單精度變數時,超出的部分會自動四捨五入。
雙精度浮點數(double)
用8個位元組(64位)存儲空間,包括符號位1位,階碼11位,尾數52位。

Ⅳ C語言中單精度和雙精度浮點型數據的有效數值怎麼算出來的

這個最好去看一下計算機組成,裡面講到float數的表示方法,比如float數,計算機裡面的存儲形式是32位,第一位是符號位,第2~9這8位是2的N次方中的N,也就是階碼,階碼范圍:±127,
單精度階碼:決定浮點數的數值范圍。float絕對值最大最小:2^(±127)≈10^(±38)
雙精度階碼:決定浮點數的數值范圍。double絕對值最大最小:2^(±1023)≈10^(±306)

Ⅵ 在c語言中,單精度浮點數與雙精度浮點數的區別與聯系。

在C語言中,單精度浮點數(float)和雙精度浮點數(double)類型都是用來儲存實數的,雙精度是用記憶較多,有效數字較多,數值范圍較大。兩種類型對應的格式字元也有不同。 以Turbo C 為例: float 單精度浮點數使用記憶:4 字元(32 位元)有效數字:6-7 位數值范圍:�6�13.4e38 至 �6�13.4e�6�138、0、3.4e�6�138 至 3.4e38格式字元:%f %e %g double 雙精度浮點數使用記憶:8 字元(64 位元)有效數字:15-16 位數值范圍:�6�11.7e308 至 �6�11.7e�6�1308、0、1.7e�6�1308 至 1.7e308格式字元:%lf %le %lg (輸入時格式字元串不加 l 會出錯,輸出時仍可用 %f %e %g) 其他系統大同小異,只是實際數值可能有點不同。 兩種類型可以互相賦值,只是 double 型賦給 float 型的時候有可能在數值范圍外。兩種類型混合計算的時候自動換為 double 型計算。

Ⅶ c語言雙精度型變數和單精度浮點型變數有什麼區別

說一下我經常用到的吧!
整形int:%d;
單精度浮點型float:%f;
雙精度浮點型double:%lf;
字元型char:%c;
其中f的使用,%a.bf,就是小數點前面a位數,小數點後面b位數。
\n
:換行
\b:退格
\t:
進格
你可以看一下這個
裡面很詳細
http://ke..com/view/410546.htm

Ⅷ 在c語言中,浮點型小數及單雙精度指什麼講的通俗易懂點!謝謝

是這樣的,浮點型就是指小數的意思,至於單雙精度也挺簡單的,單精度就是用float定義了,這個是佔4個位元組也就是32位的二進制數,而雙精度就是指double了,雙精度佔8個位元組,也就是64位的二進制數。至於計算機怎麼存儲他們我們不需要了解,我們要知道就是 double(雙精度)比單精度(float)耗內存,運算慢,但是精度高,float精確到小數點後7位,double可以精確到小數點後16位,原則是能用float就不用double,這樣省內存提高效率。

Ⅸ C語言中單精度浮點數和雙精度分別如何表示有什麼差別

C語言中,單精度浮點型為float, 雙精度浮點型為double。

  1. Float為單精度,內存中佔4個位元組,有效數位是7位(因為有正負,所以不是8位),在我的電腦且VC++6.0平台中默認顯示是6位有效數字。

  2. double為雙精度,佔8個位元組,有效數位是16位,但在我的電腦且VC++6.0平台中默認顯示同樣是6位有效數字。

二者區別:

  1. 佔用位元組空間不同。
    一個float變數佔用四位元組,一個double類型變數,一般佔用8位元組。

  2. 表示範圍不同。

    float表示範圍為-3.4E-38~3.4E+38。double 表示範圍為-1.7E-308~1.7E+308。

  3. 精度不同。
    float在表示十進制時,有效數字為6到7位。double在表示十進制時,有效數字為15到16位。

  4. 輸入輸出格式不同。
    在C語言中,輸入輸出格式化字元串,float使用%f,而double使用%lf。

Ⅹ C語言中單精度和雙精度浮點型數據的數值范圍是多少怎麼算出來的請大蝦幫忙了!

今天看書也是發現了這個問題但是網路一番網上並沒有想要的答案,思索後得出結果,首先浮點型是32位精度 有一個符號位8個指數位23個尾數位

關於精度的計算單精度8位階碼,1位符號,剩下23位尾數,算出2的負23次方,得到0.00000011920928955078125
前面0有多少個,就表示能精確到那一位,所以精度為6提供七位有效數字
雙精度11位階碼,1位符號,剩下52位尾數,算出2的負52次方,得到0.
所以精度為15,提供16位有效數字。


然後關於范圍的計算:范圍是指數位控制的,指數位為8,有效為為7(這里涉及到余碼,有興趣的同學可以查看相關資料)所以最大范圍為2^7=128 這里是指數部分 化為十進制則為

2^128=3.402823669384635E38

所以范圍為3.4E-38~3.4E+38

double同理