編集:入力matlabの精度を指定しても、特に指定しない限り、それらは倍精度に変換されます。私の間違い。Matlabのバイナリファイルから64ビット整数を読み込んでも正しい結果が得られません
matlabに単純な64ビット整数を読み込むのは、私がpythonまたはwindows calculatorで変換を行う場合とは異なる値を与えているようです。
私は8バイト長内容私はMathWorks社のMATLABで以下を使用
0x99, 0x1e, 0x6b, 0x40, 0x27, 0xe3, 0x01, 0x56
ある小さなファイル、持っている:私はどちらか使用して、しかし
input = 6197484319962505200
を取得
fid = fopen('test.data')
input = fread(fid, 1, 'int64')
を私は0x5601e327406b1e99
の別の10進表現を取得します。どちらも、私は input = 6197484319962504857
(これは343とは異なる)を取得すると予測しています。明らかにエンディアン問題ではありません。
大きなバイナリファイルから倍精度を読み込むと奇妙な結果が出ていたので、もともとテストしました。私は整数で読み込んで手で比較するだけでした。
私の質問は、私が間違っているか、見落としているか、ここでエラーを起こしているのですか?私はwin64のmatlab R2010aを使用しています。
右、 '特に指定しない限り、すべての値は 'double'になります。 –