繁体   English   中英

使用 PHP 将 unsigned char 转换为 integer

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM