示例代码
public static void bitMap(){
// 样例
int[] arr = new int[10]; // 每一个int为4个B,因此每一个int为32个bit,这里就可以表示320个bit
int i = 188; // 寻找188位上的值是多少,这里一共为320
int numIndex = 188 / 32; // 数组中的下标 0/32=0,下标就为0,33/32=1,下标就为1
int bitIndex = 188 % 32; // 得到的结果在 0-31,表示处于这个int类型的第多少位
// 拿到 188位的状态 结果为 0 或者 1
int res = ( arr[numIndex] >> bitIndex ) & 1; // 右移是将188位上的一道最低位来,和1相与可以得到这个状态
// 将 188 位上的值 改成 1
arr[numIndex] = (1 << bitIndex) | arr[numIndex];
// 将 188 位置上的值改成 0
arr[numIndex] = arr[numIndex] & ( ~ (1 << bitIndex));
}