整型常量和实型常量的区别
一、数据类型不同:整型常量的默认数据类型是int类型,即有符号整型。浮点数常量的默认类型是double类型,即双精度类型。
二、存储方式不同:整型数据在计算机中用补码存储,实型数据采用IEEE754标准存储
三、表现形式不同:整型常量在C语言中,整型常量分为十进制整型常量、八进制整型常量和十六进制整型常量三种表示形式。实型常量有两种表示形式:一种是十进制小数形式,另一种是指数形式。
扩展资料
整型常量在C语言中,整型常量有十进制、八进制、十六进制3种表示形式。
1、十进制整型常量
十进制整型常量的表示与数学上的表示相同,十进制整型常量前没有前缀,由0~9的数字组成。
2、八进制整型常量
八进制整型常量的表示形式是以数字0开头,即以0作为八进制数的前缀,由0~7的数字组成。
3、十六进制整型常量
十六进制整型常量的表示形式以0x或0X作为前缀,由数字0~9、字母A~F或a~f组成。
注:在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错而造成结果不正确。
另外,整型常量按长度划分为两种:短整型和长整型(后缀为小写字母l或大写字母L),其中默认为短整型,如377是一个短整型数,377l或377L是长整型。
实型常量 在C语言中,实型常量只能用十进制形式表示。它有两种形式:小数形式和指数形式。
1、小数形式
由正负号、0~9的数字和小数点组成。小数点前面和后面可以没有数字(不能同时省略)。如:-1.85、0.24、.426、-11.
2、指数形式
由十进制数加上阶码标志e或E以及阶码组成。其一般形式为aEn。其中a为十进制数,n为十进制整数(n为正数时“+”可以省略),其值为a×10ⁿ。
如:1.236e+2表示1.236×10² 。
参考资料:
整型常量和实型常量的区别
数据类型不同:整型常量的默认数据类型是int类型,即有符号整型。浮点数常量的默认类型是double类型,即双精度类型。
存储方式不同:整型数据在计算机中用补码存储,实型数据采用IEEE754标准存储
表现形式不同:
整型常量
在C语言中,整型常量分为十进制整型常量、八进制整型常量和十六进制整型常量三种表示形式。
(1)十进制整型常量
这种常量只能出现 0~9 的数字,且可带正、负号。例如:
0 1 364 28 -34
(2)八进制整型常量
这种常量是以数字0 开头的八进制数字串。其中数字为 0~7。例如:
0111(十进制 73) 011(十进制 9) 0123(十进制83)
(3)十六进制整型常量
这种常量是以 0x或 0X开头的十六进制数字串。其中每个数字可以是 0~9、a~f或 A~F中的数字或英文字母。例如:
0x11(十进制 17) 0Xa5(十进制 165) 0x5a(十进制90)
以上三种进制的常量可用于不同的场合。大多数场合中采用十进制常量,但当编写系统程序时,如表示地址等,常用八进制或十六进制常量。
一般情况下,编译程序会根据常量的数值分辨出常量是int 还是 long int 类型。但是有些场合需要明确地指出它是否属于 long int 类型。此时,可以在整型常量后附加一个字母 l或 L强制它为 long int 类型。例如,4126l,78l,5L等。
实型常量
实型常量有两种表示形式:一种是十进制小数形式,另一种是指数形式。
(1)十进制小数形式
十进制小数形式为包含一个小数点的十进制数字串。
此类实型常量小数点前或后可以没有数字,但不能同时没有数字。例如:
3.14159, .89, 56.0, 78., -3.0, 0.0
(2)指数形式
指数形式的格式由两部分组成:十进制小数形式或十进制整型常量部分和指数部分。
其中指数部分是在 e 或 E(相当于数学中幂底数 10)后跟整数阶码(即可带符号的整数指数)。例如:
1e15 //表示数值 1×10^15
0.35e+1 //表示数值 0.35×10^1
78e-1 //表示数值 78×10^-1
整型常量就是整常数。在C语言中,使用的整常数有八进制、十六进制和十进制三种。
1) 十进制整常数:十进制整常数没有前缀。其数码为0~9。
以下各数是合法的十进制整常数:
237、-568、65535、1627;
以下各数不是合法的十进制整常数:
023 (不能有前导0)、23D (含有非十进制数码)。
在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错造成结果不正确。
2) 八进制整常数:八进制整常数必须以0开头,即以0作为八进制数的前缀。数码取值为0~7。八进制数通常是无符号数。
以下各数是合法的八进制数:
015(十进制为13)、0101(十进制为65)、0177777(十进制为65535);
以下各数不是合法的八进制数:
256(无前缀0)、03A2(包含了非八进制数码)、-0127(出现了负号)。
3) 十六进制整常数:十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。
以下各数是合法的十六进制整常数:
0X2A(十进制为42)、0XA0 (十进制为160)、0XFFFF (十进制为65535);
以下各数不是合法的十六进制整常数:
5A (无前缀0X)、0X3H (含有非十六进制数码)。
4) 整型常数的后缀:在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。十进制无符号整常数的范围为0~65535,有符号数为-32768~+32767。八进制无符号数的表示范围为0~0177777。十六进制无符号数的表示范围为0X0~0XFFFF或0x0~0xFFFF。如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。
例如:
十进制长整常数:
158L (十进制为158)、358000L (十进制为358000);
八进制长整常数:
012L (十进制为10)、077L (十进制为63)、0200000L (十进制为65536);
十六进制长整常数:
0X15L (十进制为21)、0XA5L (十进制为165)、0X10000L (十进制为65536)。
长整数158L和基本整常数158 在数值上并无区别。但对158L,因为是长整型量,C编译系统将为它分配4个字节存储空间。而对158,因为是基本整型,只分配2 个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。
无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。
例如:
358u,0x38Au,235Lu均为无符号数。
前缀,后缀可同时使用以表示各种类型的数。如0XA5Lu表示十六进制无符号长整数A5,其十进制为165。
实型常量
实型也称为浮点型。实型常量也称为实数或者浮点数。在C语言中,实数只采用十进制。它有二种形式:十进制小数形式,指数形式。
1) 十进制数形式:由数码0~ 9和小数点组成。
例如:
0.0、25.0、5.789、0.13、5.0、300.、-267.8230
等均为合法的实数。注意,必须有小数点。
2) 指数形式:由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。
其一般形式为:
a E n(a为十进制数,n为十进制整数)
其值为 a*10n。
如:
2.1E5 (等于2.1*105)
3.7E-2 (等于3.7*10-2)
0.5E7 (等于0.5*107)
-2.8E-2 (等于-2.8*10-2)
以下不是合法的实数:
345 (无小数点)
E7 (阶码标志E之前无数字)
-5 (无阶码标志)
53.-E3 (负号位置不对)
2.7E (无阶码)
标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为浮点数。如356f和356.是等价的。
【例】说明了这种情况。
main(){
printf("%f\n ",356.);
printf("%f\n ",356);
printf("%f\n ",356f);
}
C语言中整型常量可以用3种形式表示:
① 十进制数,如+123,-234,0,23;
② 八进制数,如 o234,o777;
③ 十六进制数,如0x234,0x9A。
实型常量
在C语言中,实型常量有两种表示形式:
① 十进制形式,如123.12,.123;
② 指数形式,如1.23e-3/1.23E-3
重点是:整型常量 就是不可以带小数点的 ; 实型常量 就是可以带小数点的。
他们的关系就和数学中 ”整数“ 和 ”实数“的关系一样