package my.test; import org.h2.util.BitField; public class BitFieldTest { /** * @param args */ public static void main(String[] args) { BitField bf = new BitField(); bf = new BitField(0); bf = new BitField(1); bf = new BitField(8); bf = new BitField(100); bf.set(64); System.out.println(bf.length()); bf.set(0, 514, true); long i = bf.nextClearBit(0); System.out.println(i); System.out.println(bf.length()); for (i = 0; i < 128; i++) System.out.println(i + " " + (i & 63)); i = getBitMask(63); i = getBitMask(65); System.out.println(i); } private static long getBitMask(int i) { return 1L << (i & ADDRESS_MASK); //(i & ADDRESS_MASK)相当于按63取模(得到的值是0到63) } private static final int BITS = 64; private static final int ADDRESS_MASK = BITS - 1; }