|
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
|
||||||
Быстрый перевод байта в вектор битов29.07.2011, 18:42. Показов 8125. Ответов 48
Метки нет (Все метки)
Всем привет. Есть тут интересная задачка: перевести байт в вектор битов, да побыстрее.
Я реализовал это дело через таблицу. Кто знает способ лучше ?
0
|
||||||
| 29.07.2011, 18:42 | |
|
Ответы с готовыми решениями:
48
Вектор битов и машинные слова Перевод байта в знаковый формат |
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
|
||||||
| 31.07.2011, 18:54 | ||||||
|
Я бы при таком подходе вообще как-то так сделал:
0
|
||||||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 31.07.2011, 20:48 | |
|
0
|
|
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
|||||||||||
| 31.07.2011, 21:02 | |||||||||||
|
Посмотрел bitset, действительно работает медленнее. чем даже ваше старое решение.
Я думаю, если нужно самое быстрое решение, то на ум приходят следующие варианты 1) использование массивов вместо векторов и при этом создание глобального массива и сразу его инициализировать, примерно так:
это вероятно будет самый простой и быстрый вариант. Т.к. вам нужно использовать вектора, то можно использовать подобный вариант:
Ну, и третий вариант, тоже с созданием глобальной переменной, но до этого создается функция, которая все предварительно рассчитует (в случае если нет поддержки стандарта c++0x или не планируется его использовать) значение вектора и значение этой функции возвращается в глобальный вектор
0
|
|||||||||||
|
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
|
|||
| 31.07.2011, 21:56 [ТС] | |||
|
А в данном варианте программы, который приведен у меня выше, при каждом вызове статического метода этот массив заново создается ведь? Инициализация массива в теле класса B за пределами конструктора не увенчалась успехом. Даже если использовать static const Добавлено через 48 минут
0
|
|||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
|
||
| 31.07.2011, 22:12 | ||
1
|
||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 31.07.2011, 22:29 | |
|
easybudda, все, понял
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
|
|
| 31.07.2011, 22:50 | |
|
alex_x_x, весь профит от такого подхода в том, что работать с массивом чисел даже типа long long по крайней мере в программе на С было бы легче и быстрее, чем с массивом массивов (я так понимаю - там не одно число должно обрабатываться)... Сами же числа типа unsigned long long используются просто, как массив unsigned char[8]
0
|
|
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
|||||||
| 01.08.2011, 08:25 | |||||||
|
Что-бы получить вектор, который содержит нужное значение (из 256), нужно обратиться как к массиву (используя индексацию):
Насчет c++0x: данная конструкция (вложенные вектора) может работать и в старом стандарте, а вот инициализация вектора как в массиве (с помощью фигурных скобок, а не используя тучу push_back) появилась только в стандарте c++0x
0
|
|||||||
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
||
| 01.08.2011, 11:32 | ||
|
0
|
||
|
|
||
| 01.08.2011, 14:36 | ||
|
0
|
||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||
| 01.08.2011, 15:06 | ||
|
Если рассуждать логически, то есть два варианта: 1. неявные пушбэки 2. неявный инсерт При статической инициализации деструктор вектора не правильно отработает, так что это не реально. Или в него добавлять флажок о его "статичности".
0
|
||
|
|
|||
| 01.08.2011, 15:14 | |||
|
0
|
|||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||||||||
| 01.08.2011, 15:25 | ||||||||
0
|
||||||||
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
|||||||
| 01.08.2011, 15:39 | |||||||
0
|
|||||||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|||||
| 01.08.2011, 15:47 | |||||
|
Но мы же говорим не о списке инициализации, а о Статической инициализации, а это две большие разницы. Добавлено через 18 секунд
0
|
|||||
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
||||
| 01.08.2011, 15:50 | ||||
|
Deviaphan, Просто я подумал, что этим
0
|
||||
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
|||||||
| 01.08.2011, 16:39 | |||||||
0
|
|||||||
|
|
||
| 01.08.2011, 16:44 | ||
|
0
|
||
| 01.08.2011, 16:44 | |
|
Чтение байта в режиме SPI 9 битов Запись битов ячейки памяти (2 байта) в обратном порядке (вставка в программе на С++) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|