zoukankan      html  css  js  c++  java
  • delphi integer 内存存储与字节转换

    一直不是很明白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单元


  • 相关阅读:
    Oracle创建database link(dblink)和同义词(synonym)
    spring boot 集成 quartz 定时任务
    tomcat 启动Spring boot 项目
    UUID+随机数
    js常用字符串处理方法
    Win10安装mysql-8.0.11-winx64详细步骤
    ORA-02049: 超时: 分布式事务处理等待锁
    spring boot 发邮件
    bootstrap table 列求和
    spring boot 延长 Session 时间
  • 原文地址:https://www.cnblogs.com/nimorl/p/2045017.html
Copyright © 2011-2022 走看看