Здравствуйте, Baggy, Вы писали:
B>Здравствуйте, ilnar, Вы писали:
I>сабж.
I>как узнать номер n-го установленного (1) бита внутри long?
I>не ли какой-либо команды процессора или какой-нибудь код для С/С++
B>я бы организовал цикл по маске выделения,
B>что то в духе
B>B>unsigned long temp = 0;
B>for (int i = 0; i< 32; i++)
B>{
B> // проверяешь установлен ли i-й бит в 1...
B> if ((your_long & temp) >> i) == 1)
B> {
B> // какая то обработка...
B> }
B> //переходим к след биту
B> temp = temp << 1;
B>}
B>
так очень долго и весь смысл кодирования потеряется
кстати, есть команда ror процессора (в кипе с циклом получим что надо), так быстрее будет, но хочется вот что-то хитрое сделать