【问题标题】:PHP Convert Big Endian to HexPHP将Big Endian转换为十六进制
【发布时间】:2013-03-26 16:55:08
【问题描述】:

我正在尝试编写一个 PHP 脚本,我可以在其中获取一个大端数据包并将其转换为十六进制。我知道如果有人可以解释我非常感谢的步骤,您可以使用 unpack。有人告诉我我需要翻转位并添加一个,但我不知道 unpack 是否已经这样做或如何做到这一点。非常感谢所有帮助。

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/15556572/…
  • 什么数据类型的数据?整数? UTF-x 字符串?
  • 这是从消息结构的文档中取出的。在应用程序和接口之间传递的消息具有相同的基本数据包结构。该结构由一个 20 字节的 IP 头、一个 8 字节的 UDP 头、头和消息组成。请注意,多字节字段中的所有字节都以 Net Endian 格式 (Big Endian) 传输,其中最重要的位首先传输。例如,对于 32 位字段,首先传输位 31-24,其次是 16-23,第三位是 8-15,最后是 0-7

标签: php endianness


【解决方案1】:

根据数据长度(和类型),您应该使用带有相关参数的unpack n - 16 位 N - 32 位

然后你 pack() 它以 H 或 h 作为参数的十六进制

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 2020-06-05
    • 2015-06-25
    • 2013-03-10
    • 2012-07-29
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多