[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]

Отправлено Mic 26 октября 2001 г. 21:12
В ответ на: Подскажите, пожалуйста, можно ли каким-то способом (кроме сдвигов) подсчитать количество одинаковых бит в байте, расположенных подряд ? Требуется быстродействие отправлено V 26 октября 2001 г. 17:55

Если нужно офигенное быстродействие и есть много памяти (в чем я сомневаюсь), то:
Составляешь массив из int - количеств, например 1, в данном числе. Индексом будет само чсло, т.е.
инт Аrr[] =
0 - 0 // 0000
1 - 1 // 0001
2 - 1 // 0010
3 - 2 // 0011
4 - 1 // 0100
........
14 - 3 // 1110
15 - 4 // 1111

Потом считываешь количество единичек по индексу, т.е. у числа 14 (Аrr[14]) их будет 3.

С нулями делаешь то же самое.

Ну вобщем ты просил быстродействие? Круче ничего не будет :)

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru