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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SUDALV
2 / 2 / 0
Регистрация: 17.02.2010
Сообщений: 60
#1

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

13.05.2012, 23:22. Просмотров 774. Ответов 5
Метки нет (Все метки)

есть битовый массив 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] то записываются байты с начала, но биты в байте задом наперёд.

помогите сделать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2012, 23:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Конвертация из бит в байты (C++):

Бит 8, младший и старший бит (по книге) - C++
Добрый день. Вот читаю книгу, и не пойму элементарной на первый взгляд вещи. Как понять следующие предложения: 1) Если бит...

переход с 32 бит на 64 бит - C++
Здравствуйте. Пробую на builder 10 перевести проект с 32 на 64 бит. Возникают странные ошибки: template &lt;typename T&gt; class DOT { ...

Поменять байты - C++
Есть задача: дано число long int получить другое число путем перестановки двух ПОСЛЕДНИХ байтов с двумя ПЕРВЫМИ байтами. void...

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

Различные байты - C++
помогите, организовать цикл в котором перебираются все возможные варианты байт!! т.е составить массив где первым байтом будет 0x00 а...

Первые байты - C++
Задача вот в чем, надо получить 3 первых байта из файла. Подскажите как это сделать ?

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

исходник слишком большой чтобы сюда цитировать.
да он не нужен здесь.
0
castaway
Эксперт С++
4887 / 3022 / 370
Регистрация: 10.11.2010
Сообщений: 11,080
Записей в блоге: 10
Завершенные тесты: 1
14.05.2012, 00:40 #4
bytes[i / 8] |= 1 << (7 - i % 8);
1
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
14.05.2012, 09:44 #5
Цитата Сообщение от SUDALV Посмотреть сообщение
есть битовый массив bitset,
Нет битового массива.
0
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 Посмотреть сообщение
Нет битового массива.
?
ну булевский массив, какая разница.
0
14.05.2012, 16:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2012, 16:51
Привет! Вот еще темы с ответами:

Упаковка в байты - C++
Можно ли упаковать массив bitset допустим из 100 тысяч битов в байты, чтобы записать это дело в файл или можно записывать сразу в файл(но...

байты в строку - C++
как можно перевести 4 байта F1 08 25 12 а строку А1082512 ?

Байты бинарных данных - C++
Могут ли в числе байт изображения быть отрицательные байты со значение -1, -100 и так далее? Или бинарные данные могу содержать только...

Достать байты из переменной - C++
есть некий класс\структура. Например: class CLScls { private: int a, b, c; char d; string str; ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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