Здравствуйте Аноним, Вы писали:
А>Привет.
А>Попалась в коду такая строчка:
А>
А>int foo(unsigned val)
А>{
А> val &=(val-1);
А> // ... остальное пропущенно
А>}
А>
А>Вопрос, что такое unsigned? Я понимаю, что беззнаковый тип, но какой.
А>Если бы unsigned int — то все ясно, а есть просто, то что это?
А>И еще, объясните пожалуйста подробнее что это за выражение:
А>val&=(val-1)
А>И что оно делает при любом (unsigned) val?
А>Спасибо
Данное выражение может быть использовано:
1. для определения значения val как стпень 2-х — (val &= (val-1)) == 0;
2. для подсчета количества единиц байте, слове и т.д. (естественно требуется цикл).