第二天
1.常量与变量
常量就是值不能被改变(可以用宏定义,定义一个程序中常用的常量,方便以后更改常量的数值 #define 宏名 常量)
变量就是值可以被改变的量,变量就是在内存开一块空间,用于数据的存储。
注:变量必须先定义再使用。
2.变量定义的格式
格式:数据类型 变量名
数据类型:根据实际需求自己选择数据类型的关键字
变量名:内存空间的名称,符合标识符的命名规范即可
标识符的命名规范:
- 可以用数字、字母、_、$
- 不能用数字开头
- 不能和C语言中的关键字重复
- 见名知意(方便以后看代码知道变量的含义,也可以在变量名后注释)
3.变量的分类
按照定义的位置可分为局部变量和全局变量
局部变量不赋值,变量里面存储的是不确定的垃圾值。
全局变量不赋值,变量里面存储的是0。
4.输入输出
输出函数:printf(stdio.h头文件)
printf输出” ”里面的内容
- 普通字符:原样输出里面的内容
- 转义字符:\+字母(具有特殊功能的字符如:”\n”)
- 格式控制符:%d %f %c ...
输入函数:scanf(stdio.h头文件)
scanf的作用是接收输入的数据写入到内存中。
格式:scanf(“格式控制符”,内存地址);
5.进制转换
一个整数可以用不同的进制(二进制、八进制、十进制、十六进制)表示
进制前缀:
二进制:前缀是0b、0B
八进制:前缀是0
十进制:没有前缀
十六进制:前缀是0x、0X
进制的格式控制符:
short int long long long
十进制: %hd %d %ld %lld
八进制: %ho %o %lo %llo
十六进制: %hx %x %lx %llx
二进制没有格式控制符
%#x --- 显示前缀
6.进制转换规则
1.十进制转其他进制:除以进制数得到余数,直到商位0,将余数逆序排列即可。
2.其他进制转换十进制:相应位上的数字乘权重,然后相加
3.十进制快速转换二进制:了解二进制上部分位对应的权重根据数值靠近大的权重还是小的权重,来做减法还是加法。
4.二进制、八进制、十六进制之间的转换
3位二进制==1位八进制 (4 2 1)
4位二进制==1位十六进制 (8 4 2 1)
7.数据存储
存储单位:字节,位(1个字节==8位)
正数和负数的二进制表示形式
数据存储一律采用补码存储
正数:原码==反码==补码
负数:
原码:是一个数据本身的二进制表示形式
反码:由原码保持符号位不变其他位取反得到
补码:反码+1,这是负数最终写入计算机里的二进制数据
补码出现的原因:区分正数和负数,因为计算机里面没有减法器,要将减法变成加法
- 数据溢出
数据类型有范围,超出这个范围就存不下
数据溢出遵循环形转换规律
计算规律:
数值如果是正向超出就 - 一圈的数据个数,看是不是在数据类型的范围内。如果在就找到对应的数值
如果不在继续 - 一圈的数据个数,直到找到一个数据在在数据类型的范围内。
数值如果是负向超出 + 一圈的数据个数,看是不是在数据类型的范围内,如果在就找到对应的数值。
如果不在继续 + 一圈的数据个数,直到找到一个数据在在数据类型的范围内。