java - java.util.BitSet 可以保存超过 MAX_INT 的值吗?位?

标签 java bitset

由于 BitSet.get() 函数使用 int 作为参数,我在想是否可以在 中存储超过 2^32 位BitSet,如果是的话我将如何检索它们?

我正在做一个欧拉项目问题,我需要生成 10^10 之前的素数。我目前用来生成素数的算法是 Erathonesus 筛法,它将 boolean 值作为位存储在 BitSet 中。有什么解决办法吗?

最佳答案

您可以使用位集列表,如 List<BitSet>当到达一个位组的末尾时,您可以移动到下一个位组。

但是,我认为您的方法可能不正确。即使您对所需的每个数字使用一位 10^10大约是1 GB位内存(一个字节为 8 位,一个 GB 为 1024^3 字节)。大多数欧拉项目问题应该可以解决,而不需要那么多内存。

关于java - java.util.BitSet 可以保存超过 MAX_INT 的值吗?位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20475794/

相关文章:

java - 代码未检测到用户的空输入

java - 如何在 Windows 10 中安装 Processing-Java?

java - 插入带有子项的@OneToMany 关系对象而不在子表中插入父项ID?

java - Tomcat 6 SSL 配置 - 在 Chrome 中显示重新协商已禁用的错误!

java - boolean vector 的 BitSet 表示

c++ - boost::dynamic_bitset 连接性能

c++ - C++:如何获取位集的MSB(最高有效位)(使用按位运算符)?

Java Logger 向控制台生成多个相同的日志

c++ - 检查二进制数是否能被 13 整除

grails - 如何在 Grails 中存储一组值?