单一状态码
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 = 不存在这个状态
### 左移为状态码
保存状态 多状态码间 | 得到的值
状态判断 保存状态的值 & 状态码