簡體   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