Как преобразовать целое число в 8-битные двоичные данные с помощью PHP? - PullRequest
3 голосов
/ 23 июня 2011

Мне нужно преобразовать целое число в 8 бит, но пакет может преобразовать только 16-битные двоичные данныеЯ ищу в Google и не могу получить муравейник.может кто-нибудь помочь?

Ответы [ 3 ]

5 голосов
/ 23 июня 2011
echo $test = pack('C', 1);

Упакуйте данные аргументы в двоичную строку в соответствии с форматом.

Идея для этой функции была взята из Perl, и все коды форматирования работают так же, как в Perl.Однако есть некоторые коды форматирования, которые отсутствуют, например код формата Perl "u".

Обратите внимание, что различие между значениями со знаком и без знака влияет только на функцию unpack (), где функция pack () даеттот же результат для кодов со знаком и без знака

Коды

a   NUL-padded string
A   SPACE-padded string
h   Hex string, low nibble first
H   Hex string, high nibble first
c   signed char
C   unsigned char
s   signed short (always 16 bit, machine byte order)
S   unsigned short (always 16 bit, machine byte order)
n   unsigned short (always 16 bit, big endian byte order)
v   unsigned short (always 16 bit, little endian byte order)
i   signed integer (machine dependent size and byte order)
I   unsigned integer (machine dependent size and byte order)
l   signed long (always 32 bit, machine byte order)
L   unsigned long (always 32 bit, machine byte order)
N   unsigned long (always 32 bit, big endian byte order)
V   unsigned long (always 32 bit, little endian byte order)
f   float (machine dependent size and representation)
d   double (machine dependent size and representation)
x   NUL byte
X   Back up one byte
@   NUL-fill to absolute position
3 голосов
/ 20 мая 2015

Чтобы получить правильный формат и добавить ведущие нули, такие как 00000001, используйте:

<?php
// Add leading zeros
$bin = sprintf( "%08d", decbin( 26 )); // "00011010"
?>

Ответ в http://php.net/manual/en/function.decbin.php

3 голосов
/ 23 июня 2011

Вы можете использовать c или C для этого. Нравится:

pack('C', 234);

c подписано, C не подписано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...