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

Отправлено V 16 октября 2001 г. 12:25
В ответ на: Вопрос знатокам С (и не только) отправлено V 15 октября 2001 г. 20:04

#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