![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
supercelt, однозначно, не стоит упаковывать Вы сэкономите буквально пару байтов. (расплатившись за это конкретным замедлением, и усложнением программы) А так как код возрастет килобайтов на несколько, сэкономив "2 байта в памяти", вы потеряете несколько килобайт в коде, который тоже память, да еще и замедление программы. Одни минусы в общем ![]() Это сообщение отредактировал(а) volatile - 5.10.2015, 22:47 |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Я прошу прощения за занудство, но всё же - какова задача?
В принципе, можно обойтись вообще без таблицы:
Я не думаю, скорее всего, у них просто такая нумерация. Хотя кто знает. Нужно уточнить, как по RFID[1], RFID[2], RFID[3] и RFID[4] строится 32-битное значение DataBits и наоборот (если оно строится, да и порядок байт интересен). -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
math64 |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
Можно ещё так (на выходе получаем число 1 бит, паритет - младший бит):
Для 16 бит - нужна ещё одна итерация, для 32 бит - две. Но если нужен только бит паритета - (0x6996 >> x) & 1, будет быстрее (для тетрады). Переставть биты тетраде можно тоже с помощью таблицы. А можно аналогично:
Для перестановки бит только тетрады последняя итерация не нужна, для 16 бит - нужна ещё одна итерация, для 32 бит - две. Как я понимаю, биты паритета нужны для передачи сообщения. До передачи сообщения данные лучше хранить в не упакованном виде - так будет быстрее. Для упаковки сообщения лучше использовать массив байтов - программа на принимающей стороне может быть скомпилирована другим компилятором, который по-другому упаковывает битовые структуры, или процессор может иметь другой порядок байт в слове. Это сообщение отредактировал(а) math64 - 6.10.2015, 08:22 |
||||||||
|
|||||||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
||||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Еще стоит уточнить у ТС на какой процессор это все пишатся. Насколько я помню там что то вроде AVR (8 бит и очень хорошо, если с аппаратным умножителем, максимум 8 битным)
При таком раскладе игры с 32х битными умножениями и длинные сдвиги будут очень и очень накладными ![]() Быстрее будет циклом побитно обработать ![]() |
|||
|
||||
feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Дело прошлое, но всё же.
Всё-таки условие сильно отличается от^1 стоит делать уже после проверки условия. Поэтому бит и не выставлялся. Добавлено через 3 минуты и 21 секунду ![]() -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |