[英]Convert unsigned char into an integer using PHP
我从一个二进制字符串解压到一个数组中:
protected function unpack($packet)
{
return unpack('C*', $packet);
}
之后,我得到以下数组:
102 163 29 1
上面的四个char代表一个integer,怎么组合起来代表一个integer呢? 例如:
$number = some_method([102, 163, 29, 1]);
echo $number; // will show 100
function some_method ($numbers)
{
foreach ($numbers as $key => $num)
$number[$key] = intval ($num);
return $numbers;
}
对于从字符串中获得的无符号字节数组
$b = unpack($packet); // your function result
您可以通过以下方式获得 32 位 Integer
$value = $b[0] + 256*$b[1] + 256*2*$b[2] + 256*3*$b[3]; // LITTLE_ENDIAN;
或者
$value = 256*3*$b[0] + 256*2*$b[1] + 256*$b[2] + $b[3]; // big endian;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.