PHP: объединить два 16-разрядных целых числа в 32-разрядное целое число - PullRequest
2 голосов
/ 18 июня 2010

Я пытаюсь объединить два целых числа в моем приложении. Под объединением я подразумеваю вставлять один поток байтов в конец другого, а не объединять строки.

Два целых числа передаются от оборудования, которое не может напрямую передавать 32-битное значение, но передает два последовательных 16-битных значения отдельно.

Спасибо

Ответы [ 2 ]

8 голосов
/ 18 июня 2010
$a = ($a << 16) | $b;
1 голос
/ 18 июня 2010

Я не имею представления о синтаксисе в PHP, но держу пари, что он поддерживает побитовые операторы.

Вы можете сдвинуть первое 16-битное целое число влево и добавить его ко второму 16-битному целому числу:

first integer:
                0000000000000001
second integer:
                0000000000000010
shift first to the left by, say, 16:

first integer:
00000000000000010000000000000000
second integer:
                0000000000000010
add them:
00000000000000010000000000000010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...