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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Работа с битами

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Подскажите пожалуйста как работать с битами
m4gz
Отправлено: 29 Ноября, 2011 - 04:31:49
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Подскажите пожалуйста как оперировать битами, а не готовыми 32битнами символами? Например я хочу использовать не 32бита, а всего 4 бита. Хочу чтобы машина понимала не
0000 0000 0000 0000 0000 0000 0000 0100 а например просто 0100 для обозначения символа 4. Т.е. хочу использовать не 32 битный режим а 4 битный. Спасибо за внимание, надеюсь вопрос не слишком глупый.
(Добавление)
Есть ли тип переменной вроде 'бит' в которой содержались бы просто биты
(Добавление)
Или нужно все же создавать такой объект?


-----
http://www[dot]w3hub[dot]ru Q&A по программированию.
 
 Top
Самогонщик
Отправлено: 29 Ноября, 2011 - 04:49:31
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




Адресация в машинной памяти побайтная. Минимальное количество памяти, которое можно выделить - это 1 байт.

можно эмулировать 4-х битные данные, создавая их сразу кучей в массиве и помещая в каждый байт по 2 4-х байтных.
 
 Top
m4gz
Отправлено: 29 Ноября, 2011 - 08:24:34
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Спасибо за ответ! Насчет массива это логично, я тоже об этом думал, но вот как их создать в PHP? Если я хочу записать в переменную 01 он мне запишет эту пару как два 32х битных объекта, как на уровне памяти работать?
и второй вопрос, а вот булевые переменные содержатся тоже в 32х битном, или все же это один бит 0 или 1?


-----
http://www[dot]w3hub[dot]ru Q&A по программированию.
 
 Top
Самогонщик
Отправлено: 29 Ноября, 2011 - 08:33:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




Булевые переменные занимают 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
 
 Top
m4gz
Отправлено: 29 Ноября, 2011 - 09:09:24
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Спасибо за ссылки, но я уже все это изучил, перед созданием темы тут, только вот данные в переменных с которыми мы работает там все равно 32х битные, не так ли? И занеся в переменную значение средствами php, оно все равно будет 32х разрядное, разве я не прав?
(Добавление)
Не хочу использовать 4 булевых переменных в массиве для описание одного символа, был бы тип переменных содержащий биты - это бы решило все вопросы, наверное нужно делать класс, только я все равно смутно представляю как это реализовать не через огромное количество массивов, и это скорее всего не правильно. это задание в универе мне дали, и совсем скоро нужно показать результаты, как поступить помогите!


-----
http://www[dot]w3hub[dot]ru Q&A по программированию.
 
 Top
m4gz
Отправлено: 29 Ноября, 2011 - 20:18:41
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Кому интересно нашел то что мне нужно
http://ru2.php.net/manual/ru/fun...n.shmop-open.php


-----
http://www[dot]w3hub[dot]ru Q&A по программированию.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB