在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一直不是很明白delphi中 integer 在内存中存储方式。经实验总结如下 ============================================================================================================== # integer内存存储方式 : 高字节在前,低字节在后。 如 $12 34 56 78 在内存中为 $78 56 34 12 ,即 [3] = $78 120 [2] = $56 86 [1] = $34 52 [0] = $12 18
# 此存储方式为主机字节存储,如需进行网络数据交互,需调用 htonl ,htons等函数进行转换 转换后,可改变数据存储顺序。
============================================================================================================== var
iValue: Integer; aryBuf: array[ 0..3 ] of Byte; begin iValue := $12345678; //字节 $12 $34 $56 $78 Move( iValue, aryBuf, SizeOf( Integer ) ); //aryBuf[0] = $12 aryBuf[1] = $34 aryBuf[2] = $56 aryBuf[3] = $78 iValue := htonl( iValue ); //主机字节与网络字段转换 Move( iValue, aryBuf, SizeOf( Integer ) ); //aryBuf[0] = $78 aryBuf[1] = $56 aryBuf[2] = $34 aryBuf[3] = $12 end;
注: htonl 函数使用应引用 WinSock单元
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论