c ++ pack / unpack

时间:2013-01-21 12:29:36

标签: php c++ pack unpack

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

1 个答案:

答案 0 :(得分:3)

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