c语言(18)枚举,位运算

枚举:

      枚举    //一个一个列举出来  
     "枚举" 是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。
    
作用:
    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 
          
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值