Как посчитать количество единичных битов числа? Самый простой метод решить этот вопрос — это воспользоваться онлайн-калькуляторами, которые способны конвертировать десятичное число в двоичное и посчитать в нем единичные биты. Такой способ подойдет, если необходимо посчитать количество единичных битов у нескольких чисел для каких-то собственных интересов.
Подобная операция часто необходима в программировании, например, чтобы определить количество возникающих ошибок или найти способ, как ускорить программу, проверив ее двоичный код. В таком случае необходимо воспользоваться возможностями языка программирования и написать небольшую программу для поиска единичных битов.
Как посчитать количество единичных битов числа
Посчитать количество единичных битов числа можно разными способами и на разных языках программирования.
Как это делается на С/С++:
#include <iostream>
using namespace std;
#include <string>
#include <bitset>
int main ()
{
bitset<16> byte (string("1010110001001010"));
cout << "Количество битов в числе, содержащих единицы: " << byte.count() << endl;
cout << "Количество битов в числе, содержащих нули: " << byte.size() - byte.count() << endl;
return 0;
}
Результат выполнения такой программы будет следующий:
Количество битов в числе, содержащих единицу: 7
Количество битов в числе, содержащих нули: 9
Как можно посчитать количество единичных битов числа на Python при помощи функции bitLenCount():
def bitLenCount(int_type):
length = 0
count = 0
while (int_type):
count += (int_type & 1)
length += 1
int_type >>= 1
return(length, count)
Как можно посчитать единичные биты в Pascal:
program p;
var a, b : integer;
begin
b := 0;
readln (a);
b := b + a mod 2;
write (a mod 2);
a := a div 2;
b := b + a mod 2;
write (a mod 2);
a := a div 2;
b := b + a mod 2;
write (a mod 2);
b := b + a mod 2;
writeln (a mod 2);
writeln (b);
{в задаче можно посчитать любое число, если использовать условный оператор цикла}
b := 0;
readln (a);
while a <> 0 do
begin
b := b + a mod 2;
a := a div 2;
end;
writeln (b);
end.
Как посчитать количество единичных битов числа на Java:
public int bitCounter(int n) {
int counter = 0;
while (n != 0) {
counter += n & 1;
n = n >>> 1;
}
return counter;
}
Заключение
Посчитать количество единичных битов можно на разных языках программирования. Мы сегодня описали простые способы, которые применяются на самых популярных языках программирования.

Другое