我这儿说得是写入与读出时,字节的次序问题。
比如说 int num=10000;
其十六进制应为:
00 00 27 10
但使用ofstream写入到文件的结果却是:
10 27 00 00
字节次序相反。
如果把这个结果读出,仍然能够正确得出10,000。也就是说,如果一个数据是自己写入,自己读出,没有问题
我以前都这样,或者别人的数据也是使用这种方式写入的。
但是这次,我碰到了问题,在分析文件后发现,这文件中的二进制是能直接转换为对应十进制的,也就是说,数据是10,000
,文件中的十六进制是00 00 27 10
这样使用ofsteam直接读出的数据就是270,991,360,二进制就是10 27 00 00
也就是说这个次序要注意
这个问题应该跟计算机硬件有关,Intel机与某些的非Intel机的字节读写次序不同
而我使用的那个数据库就不是Intel下产生的
在这儿提醒一下,操作二进制文件前,如果有读写非字节类型数据的,最好先看一下文件的数据字节序