Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поясните кусочек кода, плиз, не пойму как это читать 
V
    Опции темы
СерегаГоляков
Дата 27.4.2011, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Всё супер :)
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.4.2010
Где: НСК

Репутация: нет
Всего: нет



Поясните как это так заполняется "буфер":
Код

               bool[] res;
               FileStream fr = new FileStream( name2, FileMode.Create, FileAccess.Write);
                
                bool[] buf = new bool[f.Length * 8];

                //прочитаем файл побайтно
                for (int i = 0; i < f.Length; i++)
                {
                    byte b = (byte)f.ReadByte();//отсюда поподробнее
                    for (int j = 0; j < 8; j++)
                        buf[i * 8 + j] = (b & (1 << j)) > 0;
                }


и вот в след форе тоже:
Код

//запишем в файл
                for (int i = 0; i < f.Length; i++)
                {
                    byte b = 0;
                    for (byte j = 0; j < 8; j++)//отсюда поподробнее
                        if (res[i * 8 + j]) b |= (byte)(1 << j);
                    fr.WriteByte(b);
                }

Я понимаю, что читаем символы, разбиваем на биты их и в результат записываем и наоборот, но как это так я не пойму.

Это сообщение отредактировал(а) СерегаГоляков - 27.4.2011, 07:56
--------------------
Список всех полезных программ в ОДНОЙ программеhttps://sites.google.com/site/coolprogramms...latnyh-programm...Пьяные белазисты в карьереhttp://www.youtube.com/watch?v=6FGNGMwxJZ4
PM WWW   Вверх
neutrino
Дата 27.4.2011, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 3
Всего: 62





А в чем вопрос? о_О


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
СерегаГоляков
Дата 27.4.2011, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Всё супер :)
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.4.2010
Где: НСК

Репутация: нет
Всего: нет



ну вот считали  из файла числа 255 12
и что там выполняется по порядку?

и наоборот:

res =01011001

и что делается дальше?
--------------------
Список всех полезных программ в ОДНОЙ программеhttps://sites.google.com/site/coolprogramms...latnyh-programm...Пьяные белазисты в карьереhttp://www.youtube.com/watch?v=6FGNGMwxJZ4
PM WWW   Вверх
Artemon
Дата 29.4.2011, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 1
Всего: 20



Цитата(СерегаГоляков @  27.4.2011,  10:09 Найти цитируемый пост)
и что там выполняется по порядку?

Да ничего особенного, просто берем каждый бит (НЕ БАЙТ) и записываем его в массив. Напоминаю что в одном байте 8 бит.


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
-Mikle-
Дата 29.4.2011, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 17
Всего: 59



Цитата(СерегаГоляков @  27.4.2011,  10:56 Найти цитируемый пост)
buf[i * 8 + j] = (b & (1 << j)) > 0;

Тебе нужно это по операторам расписать, какой что делает? Или то что ты хотел узнать уже ответили?

Вообще задача должна быть очень специфичная, чтобы в ней было необходимо работать с массивом булинов. Каждый bool 4 байта весит, поэтому обычно используют BitArray для таких вещей. Он не хранит каждый бит отдельно, а использует бинарную математику чтобы работать с битами напосредственно в массиве.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
СерегаГоляков
Дата 29.4.2011, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Всё супер :)
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.4.2010
Где: НСК

Репутация: нет
Всего: нет



ладно всем спасибо, сам разобрался)
--------------------
Список всех полезных программ в ОДНОЙ программеhttps://sites.google.com/site/coolprogramms...latnyh-programm...Пьяные белазисты в карьереhttp://www.youtube.com/watch?v=6FGNGMwxJZ4
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.3683 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.