基本数据类型:
整型:整数
大数据用大空间,小数据用小空间。
分类:
短整型
整型
长整型
长长整型
关键字
short
int
long
long long
格式控制符
%hd
%d
%ld
%lld
空间大小
(单位:字节)
2
4
4/8
8
范围
(有符号)
-32768~32767
-21亿~21亿
-2^31~(2^32-1)
-18位10进制数~+18位十进制数
范围
(无符号)
0 ~ 65535
0 ~ 42亿
0~(2^32-1)
0~19位的十进制数
数据范围:
有符号:
最高位为符号位,0为正,1位负
直接用上述关键字或者 使用signed + 上述关键字:signed short 和short是一样的都是有符号的空间。signed 默认可以省略不写
以short为例:
2个字节==2*8 == 16位
1为符号位 +15位数据为
正数取值范围:
0 | 000 0000 0000 0000 --- 最小 === 0
0 | 111 1111 1111 1111 --- 2^15-1=== 32767
负数取值范围:
1 000 0000 0000 0000 --- -0 没有负0表达向负方向扩展一位,这个码作为-32768 的二进制码 === -32768
1 111 1111 1111 1111 --- -(2^15-1)=== -32767
short型的范围:
-2^15 ~ 2^15-1
-32768 ~ 32767
无符号:
一定要加上unsigned
16位都是数据位
unsigned short 为例:
0000 0000 0000 0000 --- 0 0
1111 1111 1111 1111 --- 2^16-1 65535
short int long long
-32768~32767 -21亿~21亿 -18位10进制数 ~ +18位十进制数
unsigned short unsigned int unsigned long long
0 ~ 65535 0 ~ 42亿 0 ~ 19位的十进制数
实型:小数
分类 | 单精度 | 双精度 |
关键字 | float | double |
格式控制符 | %f | %lf |
空间大小 (单位:字节) | 4 | 8 |
保留小数位数 | 6~8位 | 8位以上 |
float和double都是有符号的。
字符型:字母 ---- 单个字母
分类 | 字符 |
关键字 | char |
格式控制符 | %c或%d |
空间大小(单位:字节) | 1 |
数据范围 | char:-128~127 unsigned char:0~255 |
sizeof运算符:
求空间或者数据类型所占的字节数
sizeof(空间名称)
sizeof(空间类型)
//以代码为例,执行可输出相应数据类型所占大小
#include<stdio.h>
int main(void)
{
int a;
int res = sizeof(a);
int res1 = sizeof(int);
printf("%d %d",res,res1);
return 0;
}