![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 17.04.2009
Сообщений: 5
|
![]()
Здравствуйте!
Не знаю, как правильно написать программу, которая бы считывала блок данных из файла (1000 бит), инвертировала некоторые биты и записывала этот же блок в другой файл. Работать с файлами могу, но только побайтово. Если даже посимвольно считать, то как достучаться до конкретного бита из 1000, ведь это уже будет массив из 125 элементов? ![]() |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 28.03.2009
Сообщений: 38
|
![]()
смотри дискретную математику.
или вот тут посмотреть можешь http://ru.wikipedia.org/wiki/Битовые_операции инвертирование по маске BYTE x=чтототам; BYTE mask=маска;//где 0-там не инвертируется, где 1-инвертируется x=x^mask; а конкретный бит узнать можно так BYTE x=чтототам; BYTE xbit;//=) типа BYTE потому что нету битового типа(bool вообще это int=)) xbit=(x>>(номер бита))&1; |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 10.05.2009
Сообщений: 21
|
![]()
x&(1<<n)
будет 0, если на n+1 месте справа в x стоит 0 и не 0 если 1(нужно для ифов) x^(1<<n) поставит на это место 1 если там был 0 и 0, если была 1 x|(1<<n) поставит на это место 1 |
![]() |
![]() |
![]() |
#4 | |
Регистрация: 17.04.2009
Сообщений: 5
|
![]()
to radiohobbyt:
Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 28.03.2009
Сообщений: 38
|
![]()
Нет...это значит, что на элемент массива типа char номер 526/8 надо наложить маску 1<<(526%8)
Последний раз редактировалось radiohobbyt; 18.05.2009 в 21:47. |
![]() |
![]() |
![]() |
#6 |
Регистрация: 17.04.2009
Сообщений: 5
|
![]()
Спасибо! Попытаюсь разобраться =)
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. | 0101 | Помощь студентам | 3 | 17.12.2009 23:57 |
Работа с битами | kesha2008 | Общие вопросы C/C++ | 2 | 24.02.2009 12:05 |