實型資料平常用的可能不多,有些知識也容易忽略。 實型又叫做浮點數,為什麼這樣叫我也不知道,:) 老外的叫法吧。
1、根據精度不同,可分為三個子型別:
float
型別,佔4個位元組,有7
位有效數字
double
型別,佔8個位元組,有
16位有效數字
long double型別,根據編譯器的不同,在c中,佔10位元組,在vc++中,佔8位元組,和double一樣。有更多的有效數字。
注意有效數字是從整數部分開始計算的,有效數字越多,可以精確到小數點後位數也越多,精度越高。
2、
表示方法: 1、
十進位制小數,如
1.5
2、指數,如
1.e10
表示10
10注意
e表示的是
10,而不是自然對數的底那個e
3、儲存方式
float 儲存方式:
位元組位址
0
1
2
3
儲存方式
s eeeeeee
e mmmmmmm
mmmmmmmm
mmmmmmmm
s為符號位,
e為指數,
m為小數,數值表示為:(-1)
s*2(e-127)
*1.m s
為0表示為正數,為
1表示為負數。 e
為乙個位元組 m
為23位,最高位為
0.5,每位之間的倍數為2。
舉個例子:12.
0=1*8*1.5
儲存在記憶體中時,
s=0,
e=130
,m=0.5
01000001
01000000
00000000
00000000
又如:12.
5=1*8*1.5625
0.5625
=0.5+0.0625
double float
型別的儲存方式如下,共
8個位元組:
位元組位址01
23儲存方式
s eeeeeee
e eeemmmm
mmmmmmmm
mmmmmmmm
位元組位址45
67儲存方式
mmmmmmmm
mmmmmmmm
mmmmmmmm
mmmmmmmm
e為指數部分,共
11位,
m為小數部分,共
46位。表示式為:
(-1)s
*2(e-1023)
*1.m
另外還有幾點:
1、由於實型資料的計算量比較大,所以一般在微控制器程式設計中要盡量少用。
2、實型常數不分單、雙精度,都按雙精度
double
型處理,這點在數**算中型別轉換時需要用到
3、當輸出實型資料時,需要注意其精度,會捨去一些資料位,因為機器中儲存實型數是採用「逼近法」,用2的指數進行相加而得。
舉個例子,
#include
main()
得到的結果是7383,而不是7384,因為儲存的資料實際是7.383***x,所以把float轉換成int時需要加上0.001,如下:
main()
C語言實型資料
實型也稱為浮點型。實型常量也稱為實數或者浮點數。在c語言中,實數只採用十進位制。它有二種形式 十進位制小數形式和指數形式。1 十進位制數形式 由數碼0 9和小數點組成。例如 0.0 25.0 5.789 0.13 5.0 300.267.8230 等均為合法的實數。注意,必須有小數點。2 指數形式 ...
mysql實型 mysql 資料型別
1 整型 型別大小 範圍 有符號 範圍 無符號 用途tinyint 1 位元組 128,127 0,255 小整數值 smallint 2 位元組 32 768,32 767 0,65 535 大整數值 mediumint 3 位元組 8 388 608,8 388 607 0,16 777 215...
C語言實型資料(浮點數)
實型資料也稱為浮點數或實數。在c語言中,實數只採用十進位制。它有二種形式 十進位制小數形式和指數形式。1 十進位制數形式 由數碼0 9和小數點組成。例如 0.0 25.0 5.789 0.13 5.0 300.267.8230 等均為合法的實數。注意,必須有小數點。2 指數形式 由十進位制數,加階碼...