2013-01-21 38 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! –