• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

delphiinteger内存存储与字节转换

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一直不是很明白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等函数进行转换

   转换后,可改变数据存储顺序。

 

==============================================================================================================

eg:

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单元


 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
DelphiSystem提供的编译期函数(Dec,Inc,Odd,Pred,Succ,Ord,Chr,Low,High,Sizeof) ...发布时间:2022-07-18
下一篇:
delphi控件下载地址发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap