一个简单的 BitSet
2016-03-10 16:05
260 查看
public class BitSet { /*private final static int BITS_PER_WORD = 1 << ADDRESS_BITS_PER_WORD; public BitSet() { initWords(BITS_PER_WORD); } public BitSet(int nbits) { initWords(nbits); } private void initWords(int nbits) { a = new long[wordIndex(nbits - 1) + 1]; }*/ private static long[] a =new long[640]; private final static int ADDRESS_BITS_PER_WORD = 6; public static void main(String[] args) { //test(); /* System.out.println(wordIndex(63)); System.out.println(wordIndex(64)); System.out.println(wordIndex(127)); System.out.println(wordIndex(128)); System.out.println("---------------"); System.out.println(63 / 64); System.out.println(64 /64); System.out.println(127 / 64); System.out.println(128 / 64); */ BitSet bitSet = new BitSet(); bitSet.set(4); // bitSet.clear(4); System.out.println(bitSet.get(4)); } public void clear(int bitIndex) { //取反后在取并 //假如bitIndex =2 0010 取反=1101,并=0 a[wordIndex(bitIndex)] &= ~(1L << bitIndex); } public static void test(){ // BitSet BitSet a = new BitSet(); a.set(1); System.out.println(a.get(1)); System.out.println(a.get(2)); System.out.println("---------------------"); for (int i = 1; i < 320; i++) { if (i < 150) { a.set(i); } if (i == 150) { System.out.println("---150-"); } System.out.println(a.get(i)); } } private static int wordIndex(int bitIndex) { return bitIndex >> ADDRESS_BITS_PER_WORD; } public boolean get(int bitIndex) { //假如bitIndex=2 ; 0010 & 0010 return ((a[wordIndex(bitIndex)] & (1L << bitIndex)) != 0); } public void set(int bit) { a[wordIndex(bit)] |= (1L << bit); /* * //0000 |= 0010 a[0] |= (1 << 1); * System.out.println(a[0]); * //0010 |=0100 a[0] |= (1 << 2); * System.out.println(a[0]); * //0010 |= 1000 a[0] |= (1 << 3); * System.out.println(a[0]); */ } }
相关文章推荐
- Jedis使用总结【pipeline】【分布式的id生成器】【分布式锁【watch】【multi】】【redis分布式】
- HTTP 断点续传
- mmseg 分词器 同义词总结
- dubbo service export过程
- Dubbo zookeeper 初探
- 简约之美Jodd-http--深入源码理解http协议
- js json 增删改查
- WebDriver切换浏览器窗口
- hashMap 属性说明
- java 序列化之当序列化遭遇继承,组合,对象引用
- HttpClient连接池的三篇文章
- 系统架构图
- JMeter
- js json 增删改查
- 设置HtmlUnitDriver代理及处理用户验证问题
- java 序列化之当序列化遭遇继承
- httpclient http连接池 源码阅读
- mongoDB--GridFS简介
- 持续集成hudson入门
- sun BASE64Decoder 抽取