В общем да, как и написал Дима, подразумевается, что если подряд сравнивать
все биты числа с 1, то некоторые действия будут лишними(делать то нам что-то
надо только в случае, когда бит единичный). Можно сделать цикл только по
единичным битам, например так

for(int T = .....; T ; T ^= T&-T)

тут возникает проблема, что T&-T - это число, у которого есть только один
единичный бит соотв. младшему единичнуму биту числа T, а обычно интересен
его номер.
как вычислять номер быстро можно посмотреть например здесь:
http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogDeBruijn

<http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogDeBruijn>Там
вроде как представлены формулы, но без пояснений. За пояснениями можно
обратиться сюда
(хотя тут наверно тоже только общие сведения и применения к конкретно
данному случаю нет =( )
http://en.wikipedia.org/wiki/De_Bruijn_sequence#cite_note-10

====================================================

Теперь по делу:
Когда я пытался подключить тест к event_dispatcher, сам он проходил, но
тянул за собой irq_deep_handler, который валился.
Что можно с этим поделать?
И все-таки, как связаны softirq и evdispatch. У event_dispatch в параметрах
есть softirq_nr_t, который используется только в тесте, чтобы передать
функцию параметром в softirq_install

20 апреля 2011 г. 19:33 пользователь Дмитрий Авдюхин <[email protected]>написал:

> Про биты, насколько я понял: при обходе маски вы вынуждены просматривать
> все биты, в том числе и содержащие нули. Однако, можно обойти ее так, чтобы
> рассматривать только биты, в которых стоят единицы. Ну и вроде это должно
> работать побыстрее. Чисто мое понимание сказанного.
>
>
> 2011/4/20 Gleb Efimov <[email protected]>
>
>> Какая нежность... :-)
>>
>> 20.04.11, Eldar Abusalimov<[email protected]> написал(а):
>> > Где грубость-то? Я мягок, как французская булочка. =)
>> >
>> > 20 апреля 2011 г. 11:03 пользователь Anton Bondarev
>> > <[email protected]>написал:
>> >
>> >> Да действительно не нужно наверное переписывать. Хотя я не очень понял
>> >> что такое единичные биты? То есть если напишешь что же ты хочешь
>> >> сделать словами и это будет полезно для общества, то всегда
>> >> пожалуйста. Но пока хочется что бы люди делали свои задачи, а то
>> >> кавардак получается.
>> >>
>> >> Идея задачи в том что бы ты сделал новый эвент диспатчер (лежащий
>> >> рядом). Он должен работать как я описал:) То есть принимать хендлер
>> >> или его идентификатор и очень быстро вызываться (но вызываться тоже по
>> >> очереди)
>> >>
>> >> На счет грубости согласен, нужно быть мягче, всем:)
>> >>
>> >>
>> >>
>> >> On 19 апр, 21:55, Илья К <[email protected]> wrote:
>> >> > Эльдар, не так грубо, будь мягче ;)
>> >> >
>> >> > 19 апреля 2011 г. 21:35 пользователь Николай Мальковский <
>> >> > [email protected]> написал:
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > > не надо так не надо =)
>> >> >
>> >> > > 2011/4/19 Eldar Abusalimov <[email protected]>
>> >> >
>> >> > >> Парень, зачем переписывать то, что:
>> >> >
>> >> > >> а. Работает как часы
>> >> > >> б. Будет скоро выкинуто
>> >> >
>> >> > >> Нет, ну правда?
>> >> >
>> >> > >> 19 апреля 2011 г. 21:16 пользователь Николай Мальковский <
>> >> > >> [email protected]> написал:
>> >> >
>> >> > >> по поводу soft_irq:
>> >> > >>> могу переписать тот цикл, чтобы перебирались только единичные
>> биты
>> >> >
>> >> > >> --
>> >> > >> Best regards,
>> >> > >> Eldar Sh. Abusalimov
>> >>
>> >
>> >
>> >
>> > --
>> > Best regards,
>> > Eldar Sh. Abusalimov
>> >
>>
>
>
>
> --
> С уважением,
> Авдюхин Дмитрий.
>

Ответить