本文已参与[新人创作礼]活动,一起开启掘金创作之路
一.整型数据
1.整型常量的表示:程序中用到整型常量时,可以用3种进制表示:十进制,八进制和十六进制。
例如:
2.整型数据的存储:所有的整数在计算机都是以补码形式存放的。
3.整型数据的输出
<1>带符号整数输出时可以用十进制,八进制,十六进制。
int a = 76;
long b = 65546;
short c = 26;
printf("%d\n", a); //%d表示用十进制输出整数
printf("%o\n", a); //%o表示用八进制输出整数
printf("%x\n", a); //%x表示用十六进制输出整数
printf("%ld,%lo,%lx\n", b,b,b);//加上l表示输出长整数
printf("%hd,%ho,%hx\n", c, c, c);//加上h表示输出短整数
输出结果
<2>无符号整数一般用%u格式输出,表示用十进制把一个数据当无符号整数来输出。
二.实型数据
1.实型常量
<1.>实型常量的表示:带小数点的常量称为实型常量,程序中的实型常量可以用两种形式表示。
(1)小数形式:如3.14,-12.5,0.38 , .2,-.3 。说明:当一个数是纯小数时,小数点前面的0可以省略。
(2)指数形式:例如1.25E - 2(表示1.25*
),12.5E-3,0.0125E0等 C语言规定:用指数形式表示实数时,E前面必须有数字,E后面必须是整数。实数只能用十进制表示,上面两种方法都是十进制的。
<2>实型常量的类型:实型常量有单精度和双精度两种类型,有效数字分别是7位和15位,最后一位是近似值,但规定小数后最多保留六位,其余部分四舍五入。
float a;
double b;
a = 345.3333389;
b = 345.3333389;
printf("a=%f\nb=%f\n", a, b);
- 由于a 是单精度浮点型,有效位数只有七位。而整数已占3位,故小数四位后之后均为无效数字。
- b 是双精度型,有效位为十六位。但VC6.0规定小数后最多保留六位,其余部分四舍五入。
<3>实型数据的存储:float类型(double类型的存储与其类似)的任何数据,在存储前都必须先表示为下面的格式:
(符号)*M*
其中,n是指数,M须满足条件:1.0<=M<2.0,例如:30.0,要先表示为+1.875*
.(计算得30.0=+1.875*
)。
实数一般占4个字节(32位)内存空间。按指数形式存储。实数3.14159在内存中的存放形式如下:
说明:
- 小数部分占的位(bit)数愈多,数的有效数字愈多,精度愈高。
- 指数部分占的位数愈多,则能表示的数值范围愈大。
float型数据存储空间的分配 
<4>实型数据的输出
float x = 0.0034;
printf("%e\n %f\n %E\n %.2f\n", x, x,x, x); //指数形式输出 小数形式输出 指数形式输出,结果中E大写 用诸如%.2f这样的方式指定小数位数
三.字符型数据
数据不仅仅指数值,还包括字符,字符也是C程序中经常要处理的数据.C语言可以处理的字符有英文字母(大小写),数字,标点,空格以及其他一些符号。
1.字符常量:字符常量是指用一对单引号括起来的一个字符。如‘a’,‘9’,‘!’。字符常量中的单引号只起定界作用并不表示字符本身。
常用的转义字符及作用
2.字符数据的存储:计算机中只能存储0和1,任何数据都必须先化成0和1才能存储,字符也不例外。多数计算机都是用“存字符的ASCII码值”的方法来存储字符。
基本ASCII码表中(末尾附有ASCII码表)只有128个字符,加上后来扩充的128个,不过才256,所以C语言规定:字符用一个字节存储。
char c1='A';
四:字符串
程序中有时候需要用到一串字符,即字符串,而不是一个字符。
char s[] = "AB";
printf("%s", s); //printf输出要%s格式
字符串的存储:存储字符串时,总是先把双引号中的每一个字符按顺序中存储到内存中(连续存放),然后再在后面多存放一个空字符(‘\0’);存储状态如下;
ASCII码表
tool.ip138.com/ascii_code/https://tool.ip138.com/ascii_code/