[an error occurred while processing this directive]
[an error occurred while processing this directive]
Спасибо всем. Я быстрее таблицы тоже ничего не придумал (остальные способы - "вариации на тему"). Конечно, через порты будет быстрее (если не жалко два порта), но прога для PC, так что задействовать данный способ не удастся :) А на вопрос меня натолкнул следующий примерчик (из программы fortune):
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive]
[an error occurred while processing this directive]
[an error occurred while processing this directive]
#define BITCOUNT(x) (((BX_(x)+(BX_(x)>>4)) & 0x0F0F0F0F) % 255)
#define BX_(x) ((x) - (((x)>>1)&0x77777777) \
- (((x)>>2)&0x33333333) \
- (((x)>>3)&0x11111111))
-- really weird C code to count the number of bits in a word
Конечно, это медленнее, чем сдвигами, но красиво :)
Составить ответ
|||
Конференция
|||
Архив
Ответы
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru