Почему полезно считать количество бит?

Я видел множество вопросов о подсчете количества установленных бит в insert type of вход, но почему это полезно?

Для тех, кто ищет алгоритмы подсчета битов, посмотрите здесь:

  1. Подсчет общих битов в последовательности беззнаковых длин
  2. Самый быстрый способ подсчитать количество битовых переходов в неподписанном int
  3. Как посчитать количество установленных бит в 32-битном целом числе?

4 ответа

Решение

Вы можете рассматривать строку битов как setс 1, представляющим членство в наборе для соответствующего элемента. Поэтому количество битов дает вам population count из набора.

Практические применения включают сжатие, криптографию и коды с исправлением ошибок. См., Например, http://en.wikipedia.org/wiki/Hamming_weight и http://en.wikipedia.org/wiki/Hamming_distance.

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

Некоторым людям нравится использовать растровые изображения, чтобы указать наличие / отсутствие "материала".

Существует простой способ взлома младшего значащего 1 бита в слове, преобразования его в поле единиц в битах под ним, а затем вы можете найти номер бита, посчитав 1-бит.

countbits((x XOR (x-1)))-1;

Смотреть это работает.

Let x =     00101100
Then x-1 =  00101011
x XOR x-1 = 00000111

У которого установлены 3 бита, поэтому бит 2 был наименее значимым 1-битным в исходном слове

Если вы используете свою собственную схему четности, вы можете посчитать количество битов. (В общем, конечно, я бы предпочел использовать чужой.) Если вы эмулируете старый компьютер и хотите отслеживать, как быстро он работал на оригинале, у некоторых были команды умножения, скорость которых варьировалась в зависимости от числа. 1 бит.

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

Другие вопросы по тегам