使用PHP将无符号字符转换为整数

nhaq1z21  于 2023-01-24  发布在  PHP
关注(0)|答案(2)|浏览(210)

我将一个二进制字符串解包成一个数组:

protected function unpack($packet)
{
    return unpack('C*', $packet);
}

然后,我得到了下面的数组:

102 163 29 1

以上四个字符代表一个整数。我怎样把它们组合在一起来代表一个整数呢?例如:

$number = some_method([102, 163, 29, 1]);
echo $number; // will show 100
smdncfj3

smdncfj31#

function some_method ($numbers)
{
  foreach ($numbers as $key => $num)
    $number[$key] = intval ($num);
  return $numbers;
}
wnavrhmk

wnavrhmk2#

从string中获取的无符号字节数组

$b = unpack($packet); // your function result

你可以用下面的方法得到32位整数

$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;

相关问题