我正在使用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
。
如何使函数以正确的顺序写入字节?
答案 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');