结合字节PHP

问题描述:

我需要这部分(在C++)的相当,但对PHP:结合字节PHP

unsigned char arr[ 2 ]; 
arr[ 0 ] = 0x04; 
arr[ 1 ] = 0x00; 
unsigned short shape_types; 
memcpy(&shape_types, arr, 2) 

也许有人知道一个程序,在那里我可以结合字节,看看导致十六进制和十二月?

+0

SO不是一个网站,人们做你的为你工作。您需要代码 - 您聘请了一名开发人员。 – zerkms 2012-03-08 09:30:18

+0

你有没有看过PHP手册作为出发点,或者你只是希望有人会给你的代码? – 2012-03-08 09:30:49

+0

我不等到有人回答。我只想了解如何组合2个字节。 – user1256630 2012-03-08 10:06:00

您提供的代码不直接适用于PHP。

PHP缺乏将数据从一个内存位置直接移动到另一个内存的打字或能力。

我猜你想要的几乎是以下内容。

你的输入是一个字节数组:(包括最多4个字节用于32个系统中,最多8个64位)

$bytes = array(
    0x04, 
    0x00 
); 

可以用循环酌减:

$result = 0; 
foreach ($bytes as $byte) { 
    $result = $result << 8 | $byte; 
} 

或用array_reduce

$result = array_reduce(
    $bytes, 
    function ($out, $in) { 
     return $out << 8 | $in; 
    } 
); 

甚至只是直接结合的值:

$result = $bytes[0] << 8 | $bytes[1]; 

显示其十六进制:

var_dump(dechex($result)); 

输出:

字符串 '400'(长度= 3)

+0

非常感谢!但我想我必须阅读更多关于字节。 – user1256630 2012-03-09 15:25:06