Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
 
Vokintos
0 / 0 / 0
Регистрация: 03.05.2016
Сообщений: 15
#1

Таблица битовых переходов - C++

11.10.2016, 22:05. Просмотров 747. Ответов 22
Метки нет (Все метки)

Доброго времени суток! Появилась необходимость замены битовых комбинаций по заранее сгенерированным правилам. Суть проблемы такова: имеется битовый поток, необходимо пятибитовые комбинации заменить на другие. Предположим есть текстовый документ, в котором два столбца, в одном исходная комбинация бит, а через пробел комбинация на которую необходимо заменить. Помогите пожалуйста с процедурой подгрузки такого текстового документы, и процедурой замены комбинаций по правилу, указанному в txt. Благодарю за любые советы.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2016, 22:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Таблица битовых переходов (C++):

Обработка битовых последовательности (Срочно) - C++
Решите пожалуйста задачу на с++ НЕ че не могу сделать, голову сломал, напишите плиз а то я у же в очередье на отчисления в универе ...

Разворот битовых образов - C++ Builder
Подскажите пожалуйста можно ли разворачивать битовые образы во время работы программы... то есть имеется изображение которое нужно...

Вывод битовых изображений - Visual C++
Как в Visual'е можно выводить в окне картинки без использования DDraw? Я знаю, что для этой цели есть функции...

Как отключить принудительное выравнивание битовых полей в структуре? - Visual C++
Подскажите пожалуйста как в Visual C++ 2008 правильно организовать выравнивание битовых полей в структурах? Пример кода: #pragma...

Зависимость битовых образов - C++ WinAPI
Рассчитанный на большее количество цветов, чем имеется, приложением не выведется? Или кем-то преобразуется? Отличается ли от образов для,...

Как получить стандартный набор битовых масок для MapGenericMask ? - C++ WinAPI
Здравствуйте! Данная функция, как я понял, принимает маску Generic Access, и возвращает набор стандартных и специфических прав. При...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gazlan
3131 / 1906 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
11.10.2016, 22:49 #2
Это такой дурацкий метод русский текст шифровать? Напишите внятно, что за "битовый поток".

Можно считывать по 5 бит, но проще всего читать/писать блоками по 5*8=40 бит и делать замены внутри блока. Учитывая, что их всего 32, сортированного массива (lookup table) более, чем достаточно.
0
Vokintos
0 / 0 / 0
Регистрация: 03.05.2016
Сообщений: 15
11.10.2016, 23:00  [ТС] #3
Преобразую файл в битовый поток(массив,вектор, кто как привык называть), далее беру первые 5 бит(единички или нолики) и заменяю на другую 5 битную комбинацию (по правилу которое указано в текстовом файле,таблица соответствия ), после всех этих замен записываю в другой массив.

Добавлено через 1 минуту
Блоки плодить не хочу, у меня файлы для преобразования не такие уж и маленькие (от сотен метров )
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
11.10.2016, 23:10 #4
Цитата Сообщение от Vokintos Посмотреть сообщение
Блоки плодить не хочу, у меня файлы для преобразования не такие уж и маленькие (от сотен метров )
Если у вас блок для замены 5 бит, то вариантов для его замены только 32 в худшем случае. Как так получается что "файлы для преобразования не такие уж и маленькие"?
0
Байт
Эксперт C
16061 / 10330 / 1540
Регистрация: 24.12.2010
Сообщений: 19,451
11.10.2016, 23:15 #5
gray_fox, Берусь на спор в алфавите из 2-х символов 0 и 1 создать слово в 40 гигов. И без каких-либо периодов
0
gazlan
3131 / 1906 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
11.10.2016, 23:22 #6
Цитата Сообщение от Vokintos Посмотреть сообщение
Преобразую файл в битовый поток

Не по теме:

Впечатление какого-то бреда.


Если я вас все-таки понял, то вы используете custom Base32. Какого размера ваши файлы, значения не имеет. Лучший вариант обработки - именно блоки, кратные 40 bits.
0
gray_fox
11.10.2016, 23:29
  #7

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
gray_fox, Берусь на спор в алфавите из 2-х символов 0 и 1 создать слово в 40 гигов. И без каких-либо периодов
Да я похоже просто не понял, что значит "файл для преобразования"...

0
Vokintos
0 / 0 / 0
Регистрация: 03.05.2016
Сообщений: 15
16.10.2016, 21:33  [ТС] #8
в файлах перевод из байт в биты, и примерная таблица переходов(для 4-х бит), по такому правилу нужно преобразовать.
Не прошу ничего написать, просто натолкните на алгоритм замены комбинаций.
Файлы большие, а скорее всего будут подгружаться в реальном масштабе времени. До этого писал на делфи, а сейчас обстоятельства заставили перейти на C++. Поэтому только изучая и дохожу до всего. Задача есть, а время поджимает.
0
Вложения
Тип файла: txt Рї1.txt (733 байт, 2 просмотров)
Тип файла: txt таблица переходов кам 16.txt (176 байт, 2 просмотров)
gazlan
3131 / 1906 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
16.10.2016, 22:19 #9

Не по теме:

Кажется, давать вам советы бесполезно, но все же сделаю еще одну попытку.


Не могу представить, для чего могло бы потребоваться преобразование бит в байты (даже на Delphi). Расскажите лучше, в чем ваша задача: не в смысле всяких глупостей с битами на C, а сама исходная задача - на литературном русском.
0
Vokintos
0 / 0 / 0
Регистрация: 03.05.2016
Сообщений: 15
17.10.2016, 20:24  [ТС] #10
Имеется битовый массив
1.необходимо произвести сначала процедуру замены,
2.после чего декодировать данный поток по Риду-Соломона,
3.перестановка бит,
4.затем разделить на 40 потоков по одному биту,
5.далее в каждом произвести операции перестановки,
а в конце
6.слить все потоки побайтно в один.
Такая вот нехитрая задачка.
0
gazlan
3131 / 1906 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
17.10.2016, 22:01 #11
Цитата Сообщение от Vokintos Посмотреть сообщение
Имеется битовый массив
Забудьте про "битовый массив".
Вопрос был о постановке задачи, а не о манипуляциях с битами. (К слову, RS не требует преобразования бит в байты).
0
Vokintos
0 / 0 / 0
Регистрация: 03.05.2016
Сообщений: 15
17.10.2016, 22:07  [ТС] #12
Хорошо, пусть так, есть файл, (*.bin). Сути не меняет, в любом случае придется преобразовывать в биты, так как модуляционное декодирование мне не произвести без этого.
Библиотека по RS имеется, разбираюсь с ней, но для декодирования с исправлением ошибок операции проводятся в битовом формате.
0
gazlan
3131 / 1906 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
17.10.2016, 22:31 #13
ОК. И в чем вопрос? Делите на битовые блоки и работаете с ними. Удобно, чтобы размер блока был кратен байту. Никакого преобразования бит в байты не требуется.
0
Vokintos
0 / 0 / 0
Регистрация: 03.05.2016
Сообщений: 15
17.10.2016, 22:37  [ТС] #14
Загвоздка как раз в процедуре замены, никак не могу догнать как эти комбинации 5 битные (именно 5 битные) заменить на другие, до конца всего массива.
Т.е.
00000 заменить на 00100
01001 на 01101
И так все 32 комбинации.
Если простым условием if then, то считаю это не рационально, потому что таблица переходов меняется, и содержится в *.txt. И без нее придется каждый раз код менять.
0
Байт
Эксперт C
16061 / 10330 / 1540
Регистрация: 24.12.2010
Сообщений: 19,451
17.10.2016, 22:45 #15
Цитата Сообщение от Vokintos Посмотреть сообщение
if then
Да уж! Есть стандартный прием (стандартней не бывает). Создаете (в файле) 32-х строчную таблицу. строка 0 - код, куда переходит комбинация 00000, ... строка 31 - во что переходит комбинация 11111. Считываете ее в память. Исходная комбинация - адрес, номер строки в таблице. Если это не понятно, пусть другие разжевывают.
У кого зубы молодые.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2016, 22:45
Привет! Вот еще темы с ответами:

Реализация битовых операций в Си++ - C++
По теме: Реализация битовых операций в Си++. Даны два неравных числа: n и m, не превосходящие 31. Вычислите 2^n+2^m.

Таблица переходов D-триггера - Электроника
Доброго времени суток. Помогите составить таблицу переходов для двухступенчатого D-триггера. Заранее большое спасибо

Конечный автомат и таблица переходов - Алгоритмы
Здравствуйте! Может ли так быть, что в таблице переходов из одного состояния можно перейти в несколько состояний? И еще вопрос-...

Задача про кубик (таблица переходов состояний) - Теория автоматов
Всеи привет. Нуждаюсь в помощи вашей друзья, как можно срочно, горю))) Помогите пожалуйста. Вот условие: Игральный кубик многократно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.10.2016, 22:45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru