Другое

Как правильно посчитать количество единичных битов числа

Lorem ipsum dolor

Как посчитать количество единичных битов числа? Самый простой метод решить этот вопрос — это воспользоваться онлайн-калькуляторами, которые способны конвертировать десятичное число в двоичное и посчитать в нем единичные биты. Такой способ подойдет, если необходимо посчитать количество единичных битов у нескольких чисел для каких-то собственных интересов. 

Подобная операция часто необходима в программировании, например, чтобы определить количество возникающих ошибок или найти способ, как ускорить программу, проверив ее двоичный код. В таком случае необходимо воспользоваться возможностями языка программирования и написать небольшую программу для поиска единичных битов.

Как посчитать количество единичных битов числа

Посчитать количество единичных битов числа можно разными способами и на разных языках программирования.

Как это делается на С/С++:

#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;

}

 

Заключение

Посчитать количество единичных битов можно на разных языках программирования. Мы сегодня описали простые способы, которые применяются на самых популярных языках программирования.

Схожие статьи

Распознавание объектов на фото: принцип работы и способ реализации
Другое

Распознавание объектов на фото: принцип работы и способ реализации

Курсы системных администраторов для начинающих: рассказываем ОТ и ДО
Другое

Курсы системных администраторов для начинающих: рассказываем ОТ и ДО

Технический долг или долг кодинга: плохая карма программиста
Другое

Технический долг или долг кодинга: плохая карма программиста

Другое

Asus Sabertooth X79: характеристики и преимущественные особенности