C / C ++长到Java长
我在磁盘上有一个文件,我正在阅读它是由c / c ++代码编写的。我知道我有两个64位无符号整数要读取,但Java不支持无符号整数,所以当我执行DataInputStream.readLong()时得到的值是不正确的。 (暂时忽略字节顺序我实际上正在使用我从网上下载的名为LEDataInputStream的DIS衍生物)
这里有很多帖子谈论使用BigInteger但是用于读取bytearray的javadoc只讨论加载一个bytearray表示,而问题似乎集中在这样一个事实:有些人超出了java long类型的正边界,我我正在阅读的数据将远远不够。
我有一个MATLab / Octave脚本,它将这些长long值读取为两个32位整数,然后进行一些乘法和加法以得到它想要的答案。
我想问题是 - 如何使用BigInteger或使用[LE] DataInputStream.XXX读取64位无符号整数?
提前致谢
没有找到相关结果
已邀请:
3 个回复
肺鬼耙扮群
凄嘛姥
作为64位值来存储无符号数据。这是一个模块,显示可以使用标准
类型执行大多数无符号运算。这实际上取决于你想对这个值做什么,不管这是不是问题。 编辑:处理无符号数的常用方法是扩大数据类型。这在许多情况下更简单,但不是一个要求(对于
使用
不会使事情更简单恕我直言) EDIT2:以下代码有什么问题?
版画
瞧叮