fwrite以反向字节顺序写入数字

时间:2014-04-06 13:26:58

标签: matlab

我正在使用fwrite函数将二进制值写入文件。但是我遇到一个问题,当我写出大于1字节的数字时,它会正确地写入每个字节,但顺序相反,有些例子:

fwrite(fid,3,'int32');

写入文件03 00 00 00而不是00 00 00 03

fwrite (fid,5076,'int32');

写入文件D4 13 00 00而不是00 00 13 D4

如何使函数以正确的顺序写入字节?

1 个答案:

答案 0 :(得分:2)

你应该使用机器格式参数并从litle endian(x86 proccessor(INTEL AMD你的默认值)调换到big endian。

查看http://en.wikipedia.org/wiki/Endianness以了解endianess的含义 编辑:

在您提供的链接中,您必须放置

   fwrite(fileID, A, precision, skip, machineformat) // replace machine format by 'b'

在你的情况下:

  fwrite(fid,3,'int32',0,'b');