Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Работа с битами
Форумы портала PHP.SU » » Вопросы новичков » Работа с битами

Страниц (1): [1]
 

1. m4gz - 29 Ноября, 2011 - 04:31:49 - перейти к сообщению
Подскажите пожалуйста как оперировать битами, а не готовыми 32битнами символами? Например я хочу использовать не 32бита, а всего 4 бита. Хочу чтобы машина понимала не
0000 0000 0000 0000 0000 0000 0000 0100 а например просто 0100 для обозначения символа 4. Т.е. хочу использовать не 32 битный режим а 4 битный. Спасибо за внимание, надеюсь вопрос не слишком глупый.
(Добавление)
Есть ли тип переменной вроде 'бит' в которой содержались бы просто биты
(Добавление)
Или нужно все же создавать такой объект?
2. Самогонщик - 29 Ноября, 2011 - 04:49:31 - перейти к сообщению
Адресация в машинной памяти побайтная. Минимальное количество памяти, которое можно выделить - это 1 байт.

можно эмулировать 4-х битные данные, создавая их сразу кучей в массиве и помещая в каждый байт по 2 4-х байтных.
3. m4gz - 29 Ноября, 2011 - 08:24:34 - перейти к сообщению
Спасибо за ответ! Насчет массива это логично, я тоже об этом думал, но вот как их создать в PHP? Если я хочу записать в переменную 01 он мне запишет эту пару как два 32х битных объекта, как на уровне памяти работать?
и второй вопрос, а вот булевые переменные содержатся тоже в 32х битном, или все же это один бит 0 или 1?
4. Самогонщик - 29 Ноября, 2011 - 08:33:38 - перейти к сообщению
Булевые переменные занимают 1 байт.

Думаю тебе нужны битовые операции, чтобы манипулировать отдельными битами в числе.
http://ru[dot]wikipedia[dot]org/wiki/%C1[dot][dot][dot]5%F0%E0%F6%E8%E8
http://www[dot]rinatous[dot]com/blog/node/1[dot]html
http://yandex[dot]ru/yandsearch?clid[dot][dot][dot]%D0%B8&lr=56
5. m4gz - 29 Ноября, 2011 - 09:09:24 - перейти к сообщению
Спасибо за ссылки, но я уже все это изучил, перед созданием темы тут, только вот данные в переменных с которыми мы работает там все равно 32х битные, не так ли? И занеся в переменную значение средствами php, оно все равно будет 32х разрядное, разве я не прав?
(Добавление)
Не хочу использовать 4 булевых переменных в массиве для описание одного символа, был бы тип переменных содержащий биты - это бы решило все вопросы, наверное нужно делать класс, только я все равно смутно представляю как это реализовать не через огромное количество массивов, и это скорее всего не правильно. это задание в универе мне дали, и совсем скоро нужно показать результаты, как поступить помогите!
6. m4gz - 29 Ноября, 2011 - 20:18:41 - перейти к сообщению
Кому интересно нашел то что мне нужно
http://ru2.php.net/manual/ru/fun...n.shmop-open.php

 

Powered by ExBB FM 1.0 RC1