我将一个二进制字符串解包成一个数组:
protected function unpack($packet) { return unpack('C*', $packet); }
然后,我得到了下面的数组:
102 163 29 1
以上四个字符代表一个整数。我怎样把它们组合在一起来代表一个整数呢?例如:
$number = some_method([102, 163, 29, 1]); echo $number; // will show 100
smdncfj31#
function some_method ($numbers) { foreach ($numbers as $key => $num) $number[$key] = intval ($num); return $numbers; }
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;
2条答案
按热度按时间smdncfj31#
wnavrhmk2#
从string中获取的无符号字节数组
你可以用下面的方法得到32位整数
或