目录
数据类型
1.数据类型
就是数据的种类的划分
2.C语言的数据类型
基本数据类型,构造数据类型,指针数据类型,空类型如图:
3.编程
就是把人类的问题描述给计算机,再让计算机解决
4.常量和变量
常量——在程序运行过程中,不能改变的量
变量——在程序运行过程中,能被改变的量
5. 整型
(1)常量形式:
345 //十进制整型常量
0345 //八进制整型常量
0x345 //十六进制整型常量
(2)进制(进位的制度):
逢几进1(满几进1)
十进制—>二进制
方法:除2取余法(辗转相除法)
例:2|258
2|129 ——0 (最低位)
2|64 ——1
2|32 ——0
2|16 ——0
2|8 ——0
2|4 ——0
2|2 ——0
2|1 ——0
0 ——1 (最高位)
258 二进制为100000010
十进制—>八进制
方法:除8取余
十进制—>十六进制
方法:除16取余
二进制—>八进制(1位八进制对应3位二进制)二进制—>十进制 二进制—>十六进 制 (1位 十六进制对应4位二进制)
方法:加权求和
(3)整型变量:
语法 定义变量 :数据类型 变量名;
整型类型:
八种 unsigned/signed(无符号和有符号) —— int
——short
——long
——long long
一般默认为有符号signed
(4)变量名:
是一个名字——标识符
标识符注意事项:
1)由数字、字母、下划线组成;
2)开头不能是数字;
3)不能与关键字重名;
4)不要和预处理命令及库函数重名;
int a //表示要开出一块空间
(5)整型的大小
int 4字节
short 2字节
long 8字节
long long 8字节
(6)整型数据的存储(小端存储)
大小端:
小端:高高低低
高位数据存在高地址(地址编号大)处
低位数据存在低地址处
整数补码(同余模)规则:正数—原码、反码、补码都是一样的
负数-—反码加1
负数的反码是原码符号位不变,其余位按位取反
无符号时——表示所有的二进制位都是数值位
有符号时——表示有一位(最高位)充当了符号位,其余为数值位
(7)整型类型的取值范围
int unsigned int 0~2^32-1
signed int -2^31~2^31-1
short unsigned short 0~2^16-1//65535
signed short -32768 ~ 32767
long
long long
(8)重点
整型的溢出
整型的存储和使用是分开的
例: unsigned short a = 65535; //1111 1111 1111 1111
unsigned short b = -65535; //1 0000 0000 0000 0001
6.数据类型的大小(表示的是该数据类型 所占内存空间的字节数 )
sizeof(运算数) 计算运算数所代表的数据类型占用的内存空间的字节数
运算数:可以是一个类型名;
可以数变量名;
可以是常量或表达式;
7.变量给值
int a = b; //定义的同时给值 —初始化
int a ; a=10 ; //赋值
变量之所以能变是因为变量实际上对应的是一块能被修改的空间。
8.浮点型
(1)浮点型常量形式:
1.23 1.23e-4 //科学计数法形式1.23*10^-4
1.23E-4
(2)浮点型变量及大小
float 单精度 4字节
double 双精度 —精度更高 8字节
long double 16字节
(3)浮点型的存储
IEEE 754 标准
float 4字节 32个位
1位 符号位 | 8位充当指数位(需要+127偏移量) | 23位尾数位
double 8字节 64个位
1位符号位 | 11位指数位(需要+1023偏移量)| 52位尾数位
12.125存储到计算机步骤:
1 )首先将十进制形成的小数写成二进制的小数
整数部分:除2取余法
小数部分:乘2取整法
12 —— 1100
0.125*2=0.25——0;
0.25*2=0.5 ——0;
0.5*2=1 ——1;
001
二进制形式1100.001
2)将二进制形成的小数写成科学计数法形式
1100.001 => 1.100001*2^3 (指数范围在-127~128)
3)按照IEEE 754 标准存放
0 | 3+127 | 100001
0 |10000010 | 100001
0100 0001 0100 0010 0000 0000 0000 000 //存到计算机中的样子
(4)重点
浮点的比较:保证精度一致;类型一致 。
代码中出现的变量或常量一定有其对应的数据类型。
代码中出现的浮点常量的默认识别为double类型 。
常量也可以指定类型:
0.1f——表示被识别为float类型
123——默认识别为int型
123L——表示被识别为long类型
123LU——表示被识别为unsigned long类型
123LL——表示被识别为long long类型
123LLU——表示被识别为unsigned long long类型
9.字符型
(1)字符型常量:
'a' //字符常量a 这个常量
(2)字符型变量及大小、取值范围
char ch ; 1个字节
char ch = 'a'; //ch这个变量最终放的实际上数'a'对应的ascii值(整型)
char //tiny int —小整型 char也是一种整型类型(char和整型之间是通用的)
范围:
unsigned char ch ; //0~255
signed char a ; //-128~127
(3)应用
ASCII :0~32 为控制字符(不可见字符)
48~57为数字字符'0'~'9'
65~90为英文的26个大写字母的符号
97~122为英文的26个小写字母符号
大写字母转小写 +32
10.转义字符
\n 换行字符 'a' 铃声字符;
\t 跳到下一个制表符(Tab—8个字符宽度);
\b 退一格,后面数据将前面一格的数据顶掉,当数据是‘\n’换行时直接换到下一行不顶掉前面数据;
\r 将当前位置的后面的数据移到最前面,并且覆盖掉前面的数据;;
\f 将当前位置后面的数据移到下一行的这个位置,并且当作开头;
\\ 代表一个反斜杠字符;
\' 代表一个单引号字符;
\" 代表一个双引号字符;
\ddd 1到3位八进制所代表的字符;
\xdd 1到2位十六进制所代表的字符;