私が読んでいるディスク上に、c/c++ コードで書かれたファイルがあります。読み取る 2 つの 64 ビット符号なし整数があることはわかっていますが、Java は符号なし整数をサポートしていないため、DataInputStream.readLong() を実行したときに取得する値は正しくありません。(今のところバイトオーダーは無視してください。実際には、WebからダウンロードしたLEDataInputStreamと呼ばれるDISの派生物を使用しています)
ここの多くの投稿では BigInteger の使用について話していますが、bytearray を読み取るための javadoc は bytearray 表現のロードについてのみ話しています。質問は、一部の人々が Java long 型の正の境界の外に出ているという事実に集中しているようです。私が読んでいるデータにはほど遠いでしょう。
これらの長い長い値をそれぞれ2つの32ビット整数として読み取り、必要な答えを得るために乗算と加算を行うMATLab/Octaveスクリプトがあります。
問題は、BigInteger または [LE]DataInputStream.XXX を使用して 64 ビットの符号なし整数を読み取るにはどうすればよいかということだと思います。
前もって感謝します