ЛФ
Лариса Фролова
Смотря в чем состоит задача. Если посчитать это на бумаге - то нужно записать его в двоичном виде и посчитать)
Если написать программу, то нужно циклически выполнить следующее:
логически умножать значение на 1, если результат 1, то прибавлять счетчик
потом делать битовое смещение вправо (можно делением на 2).
либо:
1) cnt=getCoutnsZeroBits(value)
2) ROR/ROL + TEST
cin >> c;
int r = 8;
while(c > 0)
r = r - (c%2),c /= 2;
cout << r;
Pascal/Delphi:
function Count(a: byte): byte;
var
i: byte;
begin
Result := 0;
for i := 0 to 7 do
if ((a shr i) and 1 = 0) then
Inc(Result);
end;