一.整型数据
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码表
https://tool.ip138.com/ascii_code/ https://tool.ip138.com/ascii_code/
? ? ??
|