|
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
|
||||||
Быстрый перевод байта в вектор битов29.07.2011, 18:42. Показов 7916. Ответов 48
Метки нет (Все метки)
Всем привет. Есть тут интересная задачка: перевести байт в вектор битов, да побыстрее.
Я реализовал это дело через таблицу. Кто знает способ лучше ?
0
|
||||||
| 29.07.2011, 18:42 | |
|
Ответы с готовыми решениями:
48
Вектор битов и машинные слова Перевод байта в знаковый формат |
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||
| 29.07.2011, 19:18 | ||||||
|
а если развернуть цикл?
Добавлено через 8 минут
0
|
||||||
|
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
|
|
| 29.07.2011, 23:58 [ТС] | |
|
Надо будет проверить на время выполнения.
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,977
|
||||||
| 30.07.2011, 00:22 | ||||||
0
|
||||||
|
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
|
|
| 30.07.2011, 01:10 [ТС] | |
|
memcpy() использовать нельзя. од будет запускаться на ARM архитектуре и могут быть грабли с BigEndian / LittleEndian
0
|
|
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
||||||
| 30.07.2011, 09:46 | ||||||
|
Здравствуйте! Есть проще вариант. В с++ есть библиотечный тип bitset, который позволяет удобно работать с наборами битов. Приведу простой пример вывода на экран значения битов. Думаю, перевести в вектор не составит труда (если нужно)
0
|
||||||
| 30.07.2011, 14:05 | |
|
Не по теме: TheAthlete, эт понятно, но автор чтото сетовал на скорость
0
|
|
|
|
||
| 30.07.2011, 16:08 | ||
|
Вариант со статической инициализацией векторов и дальнейшего использования нужного вектора - это максимально быстрый способ, очевидным минусом котрого является расход памяти. Точно так 30 лет назад в игрушках строились таблицы синусов и косинусов, чтобы на медленных процессорах не терять время на вычисление.
0
|
||
|
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
|
|
| 30.07.2011, 20:56 [ТС] | |
|
Под "лучше" я подразумеваю "быстрее". Время выполнения кода очень критично.
0
|
|
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 30.07.2011, 21:56 | |
|
0
|
|
|
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
|
|
| 30.07.2011, 22:24 [ТС] | |
|
Да. В программе нужны операции над битами (битстаффинг, скремблинг). Для хранения битов используются вектора байтов.
0
|
|
|
|
|||
| 30.07.2011, 23:23 | |||
|
0
|
|||
|
|
||||||
| 30.07.2011, 23:31 | ||||||
|
вот так получилось быстрее таблицы
0
|
||||||
|
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
|
|
| 31.07.2011, 01:24 [ТС] | |
|
А почему коряво? Заносим в вектор значение по заданному индексу из массива. push_back() уже вычисленное значение.
0
|
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||||||
| 31.07.2011, 07:14 | ||||||
|
Максимальная эффективность будет только у таблицы менее 256 значений, остальные уже менее эффективны будут даже в асме.
Поэтому вот код:
0
|
||||||
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
||
| 31.07.2011, 10:00 | ||
|
Через таблицу - самое быстрое. Хотя можно не массив из 8 элементов, а константы-строки "00000001", "00000010"... И.т.д. Меньше памяти.
0
|
||
|
|
||
| 31.07.2011, 10:46 | ||
|
0
|
||
|
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
|
||
| 31.07.2011, 17:51 [ТС] | ||
|
0
|
||
|
|
||
| 31.07.2011, 18:30 | ||
|
0
|
||
| 31.07.2011, 18:30 | |
|
Помогаю со студенческими работами здесь
20
Чтение байта в режиме SPI 9 битов Запись битов ячейки памяти (2 байта) в обратном порядке (вставка в программе на С++) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|