首页 > 代码库 > 深入Java----集合----BitSet
深入Java----集合----BitSet
BitSet类
大小可动态改变, 取值为true或false的位集合。用于表示一组布尔标志。
java中有三种移位运算符
<< : 左移运算符,num << 1,相当于num乘以2
>> : 右移运算符,num >> 1,相当于num除以2
>>> : 无符号右移,忽略符号位,空位都以0补齐
为什么java中1L<<32等于4294967296,而1<<32等于1
你需要了解整数的二进制存储形式以及移位运算的基本操作 对于int类型的整数移位a<<b,系统先用b对32求余,得到的结果才是真正移位的位数 对于long类型的整数移位,同上,不过是对64求余 对于1L<<32,实际移动位数32%64=32 对于1<<32,实际移动位数32%32=0 1L:
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 1L<<32:0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 = 2^32 = 4294967296 1:
0000 0000 0000 0000 0000 0000 0000 0001 1<<32:0000 0000 0000 0000 0000 0000 0000 0001 = 1
words[wordIndex] |= (1L << bitIndex);
相当于对bitIndex对64进行取余运算(左移会轮循),然后让1移动到数组的该余数位置,再将此值设置为true
深入Java----集合----BitSet
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。