-->

【Android小技巧-位运算】位运算

2020-08-15 20:51发布

基础知识

  • 一个int 值 32位 比如:1 就是: 00000000 00000000 00000000 00000001 最大的int值就是: 0xFFFFFFFF -> 11111111 11111111 11111111 11111111
  • << >> & 这些运算符就不再赘述了

按钮

问题:一个业务执行完后,有2个重要的参数:code(1-10) + 成功还是失败

解决方式1

我们新建一个bean, bean 中有这两个字段,通过这个bean 携带这两个信息

解决方式2

通过位运算来解决,最后一位记录成功还是失败,前面的位数记录 code

1. 生成结果数据

      result(1 << 1 + 1) //code=1 成功
      result(2 << 1 + 0) //code=2 失败 

2. 解析结果数据
      
      void result(int r){
            int code = r>>1 & 0xFFFF; //或者简单点: r&0x1
            int succ = r<<31 & 0xFFFF;
      }

标签: