1、存放字符
1.1 数据类型大小:1个字节 格式控制符 :%c
1.2 字符:被单引号引住的叫做字符
0 -- 十进制数0
‘0’ -- 字符0
“1” -- 双引号引住的叫做字符串,字符串默认里面有一个‘ ’
2、存放整数
unsigned char -- 无符号字符型
这里用到
0000 0000 - 1111 1111 0到2^8-1 为什么是2^8-1呢? 请参考http://t.csdn.cn/447fD
unsigned char 数据存储范围:0-255
数据超出范围,会发生环形存储:
#includeint main() { unsigned char ch=257;//超出数据存储范围,会报出警告 printf("ch=%dn",ch);//发生数据回环,结果为1。256为0,257为1 return 0; }
笔试题:unsigned char a = -5;printf(“a=%dn”,a);执行上述代码之后输出结果为:__251___
这里发生数据回环,unsigned char的数据存储范围为0-255,到达255后掉头继续存储,255为-1,254为-2,253为-3,252为-4,251为-5
char是1字节,1字节是8位
char -- 默认有符号 -- 最高位表示符号位,1表示负数,0表示正数
正数:0000 0000 - 0111 1111:0到2^7-1 = 0到127
负数:1000 0000 - 1111 1111:-0到-127= -1到-128
char 数据存储范围:-128到127
数据超出范围,会发生环形存储:
#includeint:整型(存放整数)int main() { char ch=129;//超出数据存储范围,但不会报出警告 printf("ch=%dn",ch);//发生数据回环,结果为-127。128为-128,129为-127 return 0; }
数据类型大小:4个字节 格式控制符 :%d
int -- 默认有符号 -- 最高位表示符号位,1表示负数,0表示正数
正数:0000 0000 0000 0000 0000 0000 0000 0000 - 0111 1111 1111 1111 1111 1111 1111 1111
负数:1000 0000 0000 0000 0000 0000 0000 0000 - 1111 1111 1111 1111 1111 1111 1111 1111
正数数据存储范围:0到2^31-1
负数数据存储范围:-1到-2^31
int 数据存储范围:-2^31到2^31-1
无符号:unsigned int
unsigned int 数据存储范围:0 - 2^32-1
环境 8位 16位 32位 64位
short 2 2 2 2
int 2 2 4 4
long 4 4 4 8字节
float/double:浮点型
类型大小:float -- 4字节 -- %f -- 默认小数点后6位
double -- 8字节 -- %lf -- 默认小数点后6位
注意:浮点型存储数据,是一个数据范围
float num;(判断是否等于0)
if(num == 0)//错误
if(num>-0.000001 && num<0.000001)//正确
补充:%m.nf
.n:表示小数点之后保留的位数
m:位宽(占据的字节数) -是左对齐 +是右对齐
不足之处还望各位大佬指正!



