package com.zihong.mybatis;
import org.junit.Test;
public class BItmapTest {
private final static int MAX = 10000000;
private final static byte[] a = new byte[1 + MAX/8];
/**
* 求num的索引
*
* @param num
* @return
*/
private int index(int num){
return num >> 3;
}
/**
* 求num的位置
* @param num
* @return
*/
private int position(int num){
return num & 0x07;
}
public void add(int num){
a[index(num)] |= 1 << position(num);
}
public void clear(int num){
a[index(num)] &= ~(1 << position(num));
}
public boolean contain(int num){
return (a[index(num)] & (1 << position(num))) != 0;
}
@Test
public void test(){
add(189);
add(289);
add(389);
System.out.println(contain(189));
System.out.println(contain(289));
System.out.println(contain(389));
clear(289);
System.out.println(contain(189));
System.out.println(contain(289));
System.out.println(contain(389));
}
}