【问题标题】:c++ pack / unpack [closed]c ++打包/解包[关闭]
【发布时间】:2013-01-21 12:29:36
【问题描述】:

我试图了解从 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

【问题讨论】:

  • 你的 PHP 代码没有意义。您的 C++ 代码是有意义的,但我看不出它与您的 PHP 代码或您引用的 pack 文档有什么关系。你有问题吗?

标签: php c++ pack unpack


【解决方案1】:

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

【讨论】:

  • 嘿,快点打败我吧。 :)
  • 现在一切都很清楚了!谢谢xD!
猜你喜欢
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 2013-11-02
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多