java 异或表示状态

基本状态标识

short s1 = 1 << 0;//1
short s2 = 1 << 1;//2
short s4 = 1 << 2;//4
short s8 = 1 << 3;//8
short s16 = 1 << 4;//16
short s32 = 1 << 5;//32
short s64 = 1 << 6;//64
short s128 = 1 << 7;//128
short s256 = 1 << 8;//256

通过<< 获取二进制,后面注释为相对应10进制的值。

组合状态

int status = 0;
status |= s1;  //1  
status |= s2;  //3  
status |= s4;  //7  
status |= s8;  //15 
status |= s16; //31 
status |= s32; //63 
status |= s64; //127
status |= s128;//255
status |= s256;//511

通过或(|)运算符组合状态,注释为组合后的值。

判断状态

//组合状态
  int status = 0;
  status |= s1;  //1 
 // status |= s2;    
  status |= s4;  //5 
  status |= s8;  //13

//判断状态
int rStatus=13;
rStatus & s1//1
rStatus & s2//0
rStatus & s4//4
rStatus & s8//8

通过与(&)运算符判断状态,不存在状态会返回0

判断返回值是否大于0就可以了

不要用  不要用  不要用    &=

 

 

 

用 int 还是 short 不影响程序结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值