java 位运算 表示状态小记

单一状态码

  var i2 = 1 << 2; //4 左移
  var i3 = 1 << 3; //8 左移
  var i4 = 1 << 4; //16 左移
  var i5 = 1 << 5; //32 左移

  数据状态值
  var huo = i3 | i4 | i2; //28 或

  //判断状态
  System.out.println("yu1" + (huo & i2)); // 4 & 与
  System.out.println("yu2" + (huo & i4)); // 16 & 与
  System.out.println("yu3" + (huo & i5)); // 0 & 与

  判断逻辑 就是
  所有状态
  status1 = 1 << 2
  status2 = 1 << 3
  status3 = 1 << 4
  某数据 保存状态 code = status1 | status2 = 12
  判断状态  [是否status1] = ((code & status1)=4) > 0  = 存在这个状态
  判断状态  [是否status2] = ((code & status2)=8) > 0  = 存在这个状态
  判断状态  [是否status3] = ((code & status3)=0) = 0  = 不存在这个状态

###   左移为状态码
      保存状态  多状态码间 | 得到的值
      状态判断  保存状态的值 & 状态码

你可能感兴趣的:(springboot,日常记录,服务崛起之路,java踩坑之路,java,开发语言)