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因为要做到平台统一,所以强制所有平台都是高位在前面,低位在后面,所以会有你所述的发现。