c語言中小數怎麼表示c語言中乙個數的小數如何表示

2021-03-07 09:46:42 字數 4536 閱讀 4040

1樓:大野瘦子

兩種表示方式:

1、定點表示:必須有小數點。

例如:0.123, .123, 123.0。

2、指數表示:e或e之前必須有數字,指數必須為整數。

例如:12.3e3 ,123e2, 1.23e4。

注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。

關於上述提到的定點表示和數的浮點表示

1、浮點型 float-point

float/double,都屬於浮點型表示。

2、定點型 fixed-point

例如,以乙個位元組表示小數,小數點定在5.3位置,高5位表示整數,低3位表示小數。

11001001

加上小數點之就是11001.001即整數部分為11001,小數部分為001

轉換一下

整數部分 11001 = 25

小數部分 001 = 1 (分子),分母是1000(8),所以就是1/8

最終此小數表示的是 25 + 1/8

也就是說,存0/8, 1/8, 2/8, ..., 7/8 共八個檔,表示精度為1/8

可見,定點型小數的值取決於你把小數點定在**。

3、數的定點表示:

小數點按照約定的形式給出。在計算機裡面沒有專門的硬體用來表示小數點, 所謂的小數點都是計算機體系設計人員按照約點的形式給出的。

按照約定的方式, 可以將計算機分為兩種:一種是小數點在數符後面數值前面, 一種是數值後面。

4、浮點表示

最早的計算機只有兩種表示方式:小數定點機和整數定點機。如果計算很大的數值時需要程式設計師手動調節小數點的位置程式設計困難。

數的表示範圍很小, 為了表示相差很大的資料, 往往需要很大的機器字長。

資料利用率不高, 用很大的機器字長時, 有很多位都是 0 。

5、高精度小數

#include

void main()

a=a%b*10;

printf("%d",a/b);

**t++;}}

2樓:小咖影屋

c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。

c語言中浮點數常量有兩種表示方式:

1、定點表示:(必須有小數點) 如:0.

123, .123, 123.0。

2、指數表示:(e或e之前必須有數字,指數必須為整數)如:12.

3e3 ,123e2, 1.23e4。錯誤的寫法:

e-5 ,1.2e-3.5,e3。

注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,請在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。

3樓:匿名使用者

4.2用c語言表示

:double d = 4.2。c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。

1、float:

float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點型別的單精度值具有 4 個位元組,包括乙個符號位、乙個 8 位 excess-127 二進位制指數和乙個 23 位尾數。

2、double:

double(雙精度浮點數)使用 64 位(8位元組) 來儲存乙個浮點數。 它可以表示十進位制的15或16位有效數字。

擴充套件資料

(1) 浮點型與整型

將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:

賦值時的型別轉換實際上是強制的。

(2) 單、雙精度浮點型

由於c語言中的浮點值總是用雙精度表示的,所以float 型資料只是在尾部加0延長為double型資料參加運算,然後直接賦值。double型資料轉換為float型時,通過截尾數來實現,截斷前要進行四捨五入操作。

4樓:

我想你的意思是這樣的,a變數為浮點型資料(4.2),想得知其小數部分。

不知道是不是呢?

如果是的話,那麼:

float b = a-(int)(a);

c語言中乙個數的小數如何表示

5樓:匿名使用者

4.2用c語言表示:double d = 4.2。c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。

1、float:

float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點型別的單精度值具有 4 個位元組,包括乙個符號位、乙個 8 位 excess-127 二進位制指數和乙個 23 位尾數。

2、double:

double(雙精度浮點數)使用 64 位(8位元組) 來儲存乙個浮點數。 它可以表示十進位制的15或16位有效數字。

擴充套件資料

(1) 浮點型與整型

將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:

賦值時的型別轉換實際上是強制的。

(2) 單、雙精度浮點型

由於c語言中的浮點值總是用雙精度表示的,所以float 型資料只是在尾部加0延長為double型資料參加運算,然後直接賦值。double型資料轉換為float型時,通過截尾數來實現,截斷前要進行四捨五入操作。

6樓:blackpink_羅捷

兩種表示

方式:1、定點表示:必須有小數點。

例如:0.123, .123, 123.0。

2、指數表示:e或e之前必須有數字,指數必須為整數。

例如:12.3e3 ,123e2, 1.23e4。

注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。

定點小數是純小數,約定的小數點位置在符號位之後、有效數值部分最高位之前。若資料x的形式為x=x0.x1x2…xn(其中x0為符號位,x1~xn是數值的有效部分,也稱為尾數,x1為最高有效位),則在計算機中的表示形式為:

一般說來,如果最末位xn= 1,前面各位都為0,則數的絕對值最小,即|x|min= 2^(-n)。如果各位均為1,則數的絕對值最大,即|x|max=1-2^(-n)。所以定點小數的表示範圍是:

2^(-n)≤|x|≤1 -2^(-n)。

擴充套件資料

由於「編碼總位數為8」的限制,真值-128無法用原碼、反碼來表示,似乎不能用上述規則來求解補碼,但實際上是可行的——只要不管它的最高位即可,操作辦法如下:

將128化為二進位制為:1 0000000,最高位為1,可以只對捨去最高位後剩餘的7位進行處理即可,首先取反得:1111111,加1得:

1 0000000,最高位有進製需丟棄,即得:0000000,加上符號位就得補碼:1 0000000。

又如,當編碼總位數為4時,真值x=+0.101的原碼、反碼、補碼均為:0 101。

真值x=-0.101的原碼、反碼、補碼依次為:1 101、1 010、1 011。

同理,特例,-1的補碼為:1 000。

在定點小數中,小數點隱含在第一位編碼和第二位編碼之間

定點小數,是指小數點準確固定在資料某個位置上的小數,從實用角度看,都把小數點固定在最高資料位的左邊,小數點前邊再設一位符號位。按此規則,任何乙個小數都可以被寫成 :n = ns .

n-1 n-2 … n-m。

7樓:

我想你的意思是這樣的,a變數為浮點型資料(4.2),想得知其小數部分。

不知道是不是呢?

如果是的話,那麼:

float b = a-(int)(a);

8樓:匿名使用者

c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。

c語言中浮點數常量有兩種表示方式:

1、定點表示:(必須有小數點) 如:0.123, .123, 123.0。

2、指數表示:(e或e之前必須有數字,指數必須為整數)如:12.3e3 ,123e2, 1.23e4。

錯誤的寫法:e-5 ,1.2e-3.5,e3。

注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,請在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。

float f1 = 1.1f; //小寫f

float f2 = 1.1f; //大寫f

double d = 1.1; //double型別

9樓:中國中醫拔罐器

好像有什麼函式吧。

不過一般的思路都是。

double d=4.2;

double m;

m=d-int(d);

printf("m=%0.1f",m ) //要幾位就零點幾位。

C語言中,085為,c語言中負數如何表示

printf函式輸出strlen 函式執行的結果,strlen 計算字串 t 065 xff n 的字元個數,該字串中有5個元素,所以會輸出5,5個元素分別是 1 t 換碼符 t 表示水平製表位 horizeontal tab 2 雙引號 3 065 字元 後面的數字065是三個八進位制數,它是數字...

C語言中,如何表示變數的n次方,C語言中,如何表示乙個變數的n次方?

用pow函式 pow函式的形式 pow double x,double y 用來求解x的y次方。使用dupow函式時,如果變數原先定義為整型,需要強制轉換為浮點型。舉例 double a pow 3.14,2 計算3.14的平方。注 使用pow函式時,需要將標頭檔案 include包含進原始檔中。c...

c語言中的,c語言中的EOF

全文結束就是文字的結束,0 是字串結尾字元,在螢幕上敲的話,linux下輸入ctrl d,windows下輸入ctrl z,os下輸入f4,就能輸入eof。兩個while語句,前面乙個判斷讀取字元是否為eof,後面乙個判斷讀取字元是否為換行字元。如果敲回車的話,沒有eof,只有 r,r是回車符。全文...