Вопрос к знатокам С: как подсчитать число "1" в числе? (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
На асме все понятно. Сдвинул, инкремент if carry.
Но в C, насколько я понимаю, carry бит как-то недоступен. Кто подскажет самый эффективный код?
Составить ответ
|||
Конференция
|||
Архив
Ответы
- С доступен в регистре SREG, кто вам мешает там его смотреть? А воопче колво битов в байте это военная шняга и приминять ее надо в военных камнях)))) — колян безпарольный (28.01.2005 18:26, пустое)
- Не самый быстрый, но тем не менее — Bill (28.01.2005 17:40, 258 байт)
- for(i=0;i<8;i++){b+=a&1;a>=1;} — zxcvbn (28.01.2005 17:22, пустое)
- Например так(+): — :) (28.01.2005 14:12, 134 байт)
- Ну например так — F* (28.01.2005 13:24, 117 байт)
- Ну например так — F* (28.01.2005 13:23, 117 байт)
- Не знай.. может- если взять unsigned, то можно усмотреть" >255", если long, то" >(64k-1)" — sss (28.01.2005 13:02, пустое)
- Ну и сделайте asm-функцию и подключите к проекту или действительно Уоррен Г.С. спросите... — A_S_N (28.01.2005 13:00, пустое)
- Ответ: (+) — SM (28.01.2005 13:00, 193 байт)
- Вам надо почитать "Алгоритмические трюки для программистов", там есть очень остроумный способ для этого(+) — Булатов (28.01.2005 12:53, 26 байт)
- сами жи недавно книгу раздавали))) — ы (28.01.2005 12:51, пустое)
- А старший ( младший ) бит никак не проверить? — =L.A.= (28.01.2005 12:48, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru