2013-01-21 37 views
-1

我想了解如何从PHP包/解压缩工程。C++ pack/unpack

如我从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

您的PHP代码没有意义。你的C++代码是有道理的,但我不明白它与你引用的PHP代码或'pack'文档有什么关系。你有问题吗? – melpomene

回答

3

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

+0

嘿,只是打败了我。 :) – 2013-01-21 12:36:04

+0

现在一切都很清楚!谢谢xD! –