当前位置: 代码迷 >> Delphi >> TMemoryStream保存上来的整型数据是颠倒的
  详细解决方案

TMemoryStream保存上来的整型数据是颠倒的

热度:2393   发布时间:2013-02-26 00:00:00.0
TMemoryStream保存下来的整型数据是颠倒的?

var
  stre : TMemoryStream;
  i :integer;
begin
  stre := TMemoryStream.Create;
  i := 2222;
  stre.Write(i,4);
  stre.SaveToFile('d:\1.dat');

ue用16进制查看文件里面显示是AE 08 00 00
而不是08 AE 00 00或是00 00 08 AE
这是怎么回事?

------解决方案--------------------------------------------------------
这是由 CPU 的处理模式决定的。机器语言处理 double 整数时是低字在前,高字在后,处理 word 整数时是低字节在前,高字节在后。编译程序也按照这种方式排列,运行时速度最快。现在很少有人关注这个了,楼主真是有心人。

------解决方案--------------------------------------------------------
内存里一切都是颠倒的。。哥们没学过汇编吧
------解决方案--------------------------------------------------------
学习过计算机原理吗?
X86处理器就是这样的.高地位是颠倒的.
ARM处理器不是这样的.
------解决方案--------------------------------------------------------
不晓得楼主为什么对这个感兴趣,一般只有用其他语言跟JAVA做对接的时候,或者做手持开发的时候才会有人关心。。。数据的存储方式跟CPU有关,目前桌面级CPU都是将低位放在前面,高位放在后面。JAVA因为要做到平台统一,所以强制所有平台都是高位在前面,低位在后面,所以会有你所述的发现。
  相关解决方案