枚举:
枚举 //一个一个列举出来
"枚举" 是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。
作用:
1.为了提高代码可读性
2.提高代码的安全性
枚举类型:
enum 枚举名
{
列举各种值 //枚举元素//枚举常量
};
注意:
列举各种值,之间用逗号隔开,不需要写类型名
注:
1. 表示 定义了一种 枚举类型
2. 枚举中逐个列举的值,默认是从0开始
如果有给定的值,则后续没有给值的 枚举元素 依次 加1
3. 枚举类型的 本质 实际是一个int类型的数据
4. 枚举类型的变量 与 整型类型的变量通用的
5. 与 宏定义对比
区别:
使用阶段不同 --- 宏定义 --- 预处理阶段
枚举 --- 编译阶段 要检查语法
运行阶段 参与代码运行
可读性
都提高了可读性
枚举,更能说明有相关性的一些值间关系
位运算:
//c语言特点
可以直接操作二进制位
& 与运算 --- 位运算中 //清0
运算规则:
一假则假
0xaa
1010 1010
0011 0011 &
---------
0010 0010 0x22
| 或运算 //置1
运算规则:
一真则真
1010 1010 // 0xaa
0011 0011 & // 0x33
---------
1011 1011 //0xbb
~ 取反
运算规则:
真假相对
~0xaa
1010 1010 // 0xaa
0101 0101 //0x55
^ 异或
运算规则:
相同为 0
不同为 1
1010 1010 // 0xaa
0011 0011 ^ // 0x33
---------
1001 1001 //0x99
注意:
1.浮点数不能做位运算
<< 左移
写法:
a<<n //表示将 a这个数据 左移 n位
0000 0001
左移1位 相当于乘 2
0000 0001
0000 0010
注:
最低位 补0
>> 右移
a>>n //表示将 a这个数据 右移 n位
0000 0001
右移1位 相当于除 2
1000
1100
算术右移
//看符号位 看数据类型
如果是有符号类型的数据,右移时,最高位补的是符号位
如果是无符号类型的数据,右移时,最高位补的0