【发布时间】:2013-10-23 01:50:24
【问题描述】:
我有 2 个非常大的二进制数(144 位)。我想将它们写在不同的 RandomAccessFiles 中,然后将文件读入内存并检查哪个数字更大。 到目前为止我做了什么:
1。 我创建了一个 BigInteger:
BigInteger big = new BigInteger("01110101010010101010111100010101010101010101010110101010101010101010010101010101010101010101010101111010010101010",2);
2。 我得到了 longValue:
big.longValue();
3.. 我将 long 写入随机访问文件,读取文件,比较 long 等...
但如果二进制文件比 'Long.maxvalue' 长,我所做的是错误的,对吗?
那么有人有什么建议吗?
否则我可以处理大的二进制数吗?
【问题讨论】:
-
为什么不直接将大整数写入文件? BigIntegers 默认是可序列化的。检查 ObjectInputStream。您还可以检查是否只需编写与文件等效的字符串。
-
您可以使用bit stream。理论上不应使用 long 来表示位。
标签: java binary biginteger randomaccessfile