[an error occurred while processing this directive]
[an error occurred while processing this directive]
Вопрос знатокам С (и не только)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive]
[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Отправлено
V 15 октября 2001 г. 20:04
|
|
|
|
Как переставить местами биты в байте (т.е. "отзеркалить" байт)?
Понятно, что можно это сделать "тупо": сдвинули, проверили (перенос или младший разряд), в зависимости от результата проверки выставили/сбросили разряд в формируемом байте.
Интересует, нельзя ли это сделать более хитрым способом (и за меньшее количество тактов), например, используя XOR..
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Ответ: Куча решений данной задачи (-) — АГ (17.10.2001 12:09, пустое, ссылка)
- Не понятно - зачем чего-то проверять ? — Kuka (17.10.2001 08:35, пустое)
- Ответ: А может вот так...(если я правильно понял задачу )... — Hog (16.10.2001 15:03, 1061 байт)
- Спасибо всем. Я быстрее таблицы тоже ничего не придумал (остальные способы - "вариации на тему"). Конечно, через порты будет быстрее (если не жалко два порта), но прога для PC, так что задействовать данный способ не удастся :) А на вопрос меня натолкнул следующий примерчик (из программы fortune): — V (16.10.2001 12:25, 366 байт)
- Ответ: Вот так иногда делал...(в лоб) — Fanta (16.10.2001 11:54, 259 байт)
- Ответ: — ВН (16.10.2001 10:59, 267 байт)
- Если не жалко 256 байт ПЗУ тогда проще всего через таблицу (+) — victorB (16.10.2001 08:52, 30 байт)
- Ответ: сдвинуть источник вправо через перенос, затем влево приемник, тоже через перенос, и так 8 раз — Sasha (16.10.2001 00:32, пустое)
- Дурацкий способ — Voldemar (15.10.2001 22:33, 118 байт)
- Ответ: — Vallav (15.10.2001 21:53, 116 байт)
- Можно сделать таблицу. А иначе - вряд ли. Только хардваре. — Mik (15.10.2001 20:43, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru