• 深入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<<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核心学习(八) 枚举类
    java核心学习(七) 内部类、匿名内部类、Lambda表达式
    算法-快速排序
    java核心学习(六) 面向接口编程
    java核心学习(五) 修饰符(重点是static、final)
    java 核心学习笔记(四) 单例类
    贪心 zoj3197
    贪心 poj3045
    三分 POJ3737
    浮点数二分答案 HDU1969
  • 原文地址:https://www.cnblogs.com/0xcafedaddy/p/6431505.html
Copyright © 2020-2023  润新知