0

我试图了解从 PHP 打包/解包的工作原理。

正如我从php.net/pack看到的

n     unsigned short (always 16 bit, big endian byte order)

我在 php

$binarydata = unpack('n', 12);
print_r($binarydata);

输出:

Array (
     [1] => 12594
)

在 C++ 中我有

uint16_t swap_uint16( uint16_t val ) {
  return (val << 8) | (val >> 8 );
}
cout << swap_uint16(12);

输出:3072

4

1 回答 1

3

您的 PHPunpack 12 转换为字符串“12”。在字节表示中,它是:0x31 0x32. 现在将 PHP 的输出 (12594) 转换为十六进制数))

于 2013-01-21T12:35:26.100 回答