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

Конвертация из бит в байты - C++

Восстановить пароль Регистрация
 
SUDALV
 Аватар для SUDALV
2 / 2 / 0
Регистрация: 17.02.2010
Сообщений: 60
13.05.2012, 23:22     Конвертация из бит в байты #1
есть битовый массив bitset, заполненый определённым образом.
есть char* bytes[length]

далее мне понадобилось из массива битов сделать массив байтов для записи в файл.
в интернете нашёл алгоритм:

for (i=0; i<4194304; i++) {
if (bits[i])
bytes[length-i/8-1] |= 1<<(i%8);
}

он работает, но записывает файл с конца. а мне надо с начала.
а в силу того, что побитовые операции в с++ я знаю поверхностно, как переделать так , чтобы массив заполнялся с начала, незнаю.
если вместо [length-i/8-1] сделать [i/8] то записываются байты с начала, но биты в байте задом наперёд.

помогите сделать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2012, 23:22     Конвертация из бит в байты
Посмотрите здесь:

байты в строку C++
C++ Первые байты
C++ перевессти байты в слово
Достать байты из переменной C++
Различные байты C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
13.05.2012, 23:29     Конвертация из бит в байты #2
Пример программы в студию!
Мне лень писать все с нуля.
SUDALV
 Аватар для SUDALV
2 / 2 / 0
Регистрация: 17.02.2010
Сообщений: 60
14.05.2012, 00:09  [ТС]     Конвертация из бит в байты #3
Цитата Сообщение от lazybiz Посмотреть сообщение
Пример программы в студию!
Мне лень писать все с нуля.
всмысле?
вот, нужен то только этот цикл. надо его переделать так чтобы он биты в байты записывал не с конца а с начала.

исходник слишком большой чтобы сюда цитировать.
да он не нужен здесь.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
14.05.2012, 00:40     Конвертация из бит в байты #4
bytes[i / 8] |= 1 << (7 - i % 8);
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
14.05.2012, 09:44     Конвертация из бит в байты #5
Цитата Сообщение от SUDALV Посмотреть сообщение
есть битовый массив bitset,
Нет битового массива.
SUDALV
 Аватар для SUDALV
2 / 2 / 0
Регистрация: 17.02.2010
Сообщений: 60
14.05.2012, 16:51  [ТС]     Конвертация из бит в байты #6
Цитата Сообщение от lazybiz Посмотреть сообщение
bytes[i / 8] |= 1 << (7 - i % 8);
Большое спасибо! Работает!

Добавлено через 39 секунд
Цитата Сообщение от taras atavin Посмотреть сообщение
Нет битового массива.
?
ну булевский массив, какая разница.
Yandex
Объявления
14.05.2012, 16:51     Конвертация из бит в байты
Ответ Создать тему
Опции темы

Текущее время: 15:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru