博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简单的 BitSet
阅读量:6320 次
发布时间:2019-06-22

本文共 2294 字,大约阅读时间需要 7 分钟。

hot3.png

一个简单的 BitSet 博客分类: java  
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]);         */    }}

 

转载于:https://my.oschina.net/xiaominmin/blog/1599621

你可能感兴趣的文章
国内银行CNAPS CODE 查询 苹果开发者,应用内购,需要填写税务相关信息必须的...
查看>>
Linux下抓图工具shutter
查看>>
javascript获取select,checkbox,radio的值
查看>>
Metro Win8风格的按钮(Filp翻转)
查看>>
cookies/session/token
查看>>
清除代码异味
查看>>
【转】从知乎上看到“全栈开发者”讨论之后的自黑
查看>>
Java-IO流
查看>>
Linux入门-6 Linux网络基本配置
查看>>
洗礼灵魂,修炼python(22)--自定义函数(3)—函数作用域,闭包
查看>>
newcoder Tachibana Kanade Loves Probability(小数点后第k位)题解
查看>>
vue项目未加载完成前显示loading...
查看>>
leetcode981
查看>>
安装DNS Server linux 【转载】
查看>>
windows 与linux 下用C++读取sqlite实现文件复制(一)
查看>>
IOS 5 中为什么outlet 输出口总是设定成弱类型(weak)呢
查看>>
Read-Copy Update (RCU)
查看>>
基于centos系统,系统基本检查及巩固
查看>>
在以太坊上如何取消/修改已经提交的交易
查看>>
Android IOS WebRTC 音视频开发总结(十九)-- kurento
查看>>