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