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

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

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

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

6
задан Community 23 May 2017 в 12:07
поделиться

4 ответа

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

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

5
ответ дан 17 December 2019 в 04:44
поделиться

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

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

0
ответ дан 17 December 2019 в 04:44
поделиться

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

0
ответ дан 17 December 2019 в 04:44
поделиться

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

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

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

Посмотрите, как это работает.

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

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

0
ответ дан 17 December 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: