1、变量
用来暂存数据,其数据值可以变化更改
1)整数型
- char:
空间大小: 1 Byte (在绝大数的编译环境下是1B)
取值范围: 0 ~ 255 (无符号) -128 ~ +127 (有符号)
- short:
空间大小:>2B, <= int (32bit环境下是一般是2B)
取值范围:0 ~ 65535(无符号) -32768 ~ +32767(有符号)
- int:
空间大小:一般等于CPU的字长(32bit环境下,一般为4B)
取值范围:0 ~ 4G(无符号) -2G ~ +2G(有符号)
- long:
空间大小: >=int(32bit环境下,一般为4B,同int)
取值范围:0 ~ 4G(无符号) -2G ~ +2G(有符号)
- long long(GCC扩展类型,非标准):
空间大小:双倍的long(32bit环境下,一般为8B)
取值范围:0 ~ 10^20(无符号) -10^19 ~ +10^19(有符号)
2)浮点型
- float(单精度浮点型):
空间大小:4B(IEEE标准下)
取值范围:+-10^+-38
精度:6~7位
- double(双精度浮点型):
空间大小:8B(IEEE标准下)
取值范围:+-10^+-308
精度:15~16位 (最多保证16位精度,完全保证15位精度)
3)指针型 任何基本类型或构造类型都可以定义对应的指针类型。指针的大小固定,跟平台相关(32bit下是4字节)
int *p
char *p1;
struct student *pstu;
4)常量:一般用作直接参与运算,其数值在运行过程中不可变。
5)实数型
浮点: 3.14 1234.5678
指数: 3.14el, 1.23456e5, -1.45e-10 (科学计数法,e左边是系数<精度>,e右边是指数<10位底>)
6)字符型
字 符: 'a' 'b' '0' '1'
ASCII码: 97,98,48,49(C语言中字符用ASCII码表示,ASCII码是范围为0~127的整数)
7)字符串: “hello world”,“i love china”
2、计算机数据的存储
1Byte = 8bit
B: 1字节 8bit
KB 1千字 1024B
MB: 1兆字 1024KB
GB: 1吉字 1024MB
- 原码:数据的直接二进制表示,其中有符号数的最高为代表符号为,负数置1,正数置0
- 反码:符号位不变的情况下其余位按位取反。
- 补码:反码的基础上加1
例如:
6<十进制> == 000000110<二进制>
符号位 数字
1 0000110 -6的原码
1 1111001 -6的反码
1 1111010 -6的补码