我不确定我是否遗漏了一些简单的东西,但以下代码失败(a 和 b 应该是相同的):
a=single(2147483584)
f=fopen('test','wb');
fwrite(f,a,'int32')
fclose(f);
f=fopen('test','rb');
b=fread(f,inf,'int32');
fclose(f)
a
b
输出:
a =
2.1475e+009
b =
-2.1475e+009
以下代码成功:
a=single(2147483583)
f=fopen('test','wb');
fwrite(f,a,'int32')
fclose(f);
f=fopen('test','rb');
b=fread(f,inf,'int32');
fclose(f)
a
b
输出:
a =
2.1475e+009
b =
2.1475e+009
有谁知道为什么?