结合字节PHP
问题描述:
我需要这部分(在C++)的相当,但对PHP:结合字节PHP
unsigned char arr[ 2 ];
arr[ 0 ] = 0x04;
arr[ 1 ] = 0x00;
unsigned short shape_types;
memcpy(&shape_types, arr, 2)
也许有人知道一个程序,在那里我可以结合字节,看看导致十六进制和十二月?
答
您提供的代码不直接适用于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
SO不是一个网站,人们做你的为你工作。您需要代码 - 您聘请了一名开发人员。 – zerkms 2012-03-08 09:30:18
你有没有看过PHP手册作为出发点,或者你只是希望有人会给你的代码? – 2012-03-08 09:30:49
我不等到有人回答。我只想了解如何组合2个字节。 – user1256630 2012-03-08 10:06:00