【发布时间】:2011-02-09 12:25:06
【问题描述】:
我在磁盘上有一个文件,我正在读取它是由 c/c++ 代码编写的。我知道我有两个 64 位无符号整数要读取,但 Java 不支持无符号整数,所以当我执行 DataInputStream.readLong() 时得到的值不正确。 (暂时忽略字节顺序,我实际上使用的是 DIS 的衍生产品,称为 LEDDataInputStream,它是从网上下载的)
这里的很多帖子都在谈论使用 BigInteger,但用于读取 bytearray 的 javadoc 只谈论加载 bytearray 表示,问题似乎集中在一些人超出了 java long 类型的正边界这一事实上,而我正在阅读的数据将远远不及。
我有一个 MATLab/Octave 脚本,它将这些 long long 值分别读取为两个 32 位整数,然后进行一些乘法和加法运算以得到它想要的答案。
我想问题是 - 我如何使用 BigInteger 或使用 [LE]DataInputStream.XXX 读取 64 位无符号整数?
提前致谢
【问题讨论】:
标签: java biginteger uint64