[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: побитовое чтение
kasichvadim
Здравствуйте!

Есть бинарные данные 10 байт unsigned char

читаю:

$bin = file_get_contents('bin');
for ($i=0; $i < strlen($bin); $i++){
$unpack[] = dechex(implode(unpack('C', $bin{$i})));
}


получаю массив с hex значениями байтов

array(10) {
[0]=>
string(1) "0"
[1]=>
string(2) "d3"
[2]=>
string(2) "49"
[3]=>
string(2) "6c"
[4]=>
string(2) "1f"
[5]=>
string(2) "12"
[6]=>
string(2) "4b"
[7]=>
string(2) "3c"
[8]=>
string(2) "4b"
[9]=>
string(2) "c7"
}


имеем четвертый байт 108 = 6c = 1101100

теперь самое интересное: мне нужны значения 4 младших бит, потом два следующих и затем значение последнего старшего бита.

спасибо!



Спустя 51 минута, 28 секунд (22.06.2011 - 20:20) waldicom написал(а):
перевести в двоичную систему, а потом использовать как строку (у строки, как и у массива, есть индексы элементов). Или я чего-то не понимаю?

Спустя 11 минут, 4 секунды (22.06.2011 - 20:31) kasichvadim написал(а):
Как-то сразу не допер до этого smile.gif
Но это лишние телодвижения (циклы).
Я надеялся на существования каких-либо функций (но гугл ничего не подсказал).
Нужно, наверное, курить двоичную арифметику....

Спустя 14 минут, 22 секунды (22.06.2011 - 20:45) waldicom написал(а):

Спустя 25 минут, 26 секунд (22.06.2011 - 21:11) killer8080 написал(а):
Цитата (kasichvadim @ 22.06.2011 - 20:31)
Нужно, наверное, курить двоичную арифметику....

именно :)
вот последние четыре бита в строковом виде
echo decbin(hexdec('6c') & bindec('1111'));

Спустя 9 минут, 28 секунд (22.06.2011 - 21:20) kasichvadim написал(а):
Спасибо всем за помощь!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.