码迷,mamicode.com
首页 > 编程语言 > 详细

深入Java----集合----BitSet

时间:2017-02-23 01:01:16      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:类型   表示   tin   移位运算符   符号   logs   word   补齐   基本   

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<<320000 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<<320000 0000 0000 0000 0000 0000 0000 0001 = 1

 

words[wordIndex] |= (1L << bitIndex);
相当于对bitIndex对64进行取余运算(左移会轮循),然后让1移动到数组的该余数位置,再将此值设置为true

 

深入Java----集合----BitSet

标签:类型   表示   tin   移位运算符   符号   logs   word   补齐   基本   

原文地址:http://www.cnblogs.com/0xcafebaby/p/6431505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!