Re[3]: замена единицу на нуль в битовом предствалении ч
От: Bell Россия  
Дата: 13.09.07 14:18
Оценка:
Здравствуйте, Аноним, Вы писали:

B>>
B>>unsigned int n = ...;
B>>n &= n-1;//Сбросить младший значащий бит
B>>

А>Вы не могли бы по подробнее обяснить эту строчку?n &= n-1

Развернутый код:
n = n & (n-1);


Комментарий: к числу применяется операция "битовое 'и'", при этом в качестве второго операнда используется разность этого же числа и единицы. Результат операции записывается в исходную переменную.

Пример в двоичном коде:
n = 6;// 00000110
n2 = n-1;// n2 == 5 == 00000101
n = n2 & n;
           // 00000110
           //&
           // 00000101
           //---------
           // 00000100


Вроде достаточно подробно...
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.