Вопросы с тегом 'hammingweight'

Вес Хэмминга положительного целого числа - это счет одного бита в его двоичном представлении.
51

Как подсчитать количество заданных битов в 32-битовом целое?

8 бит, представляющих число 7, выглядят следующим образом: 00000111 Три бита установлены. Что такое алгоритмы для определения количества заданных битов в 32-битовом целое?
20 сент. '08 в 19:04
22

Элегантно определить, является ли более одного логического значения "истинным"

У меня есть набор из пяти булевых значений. Если более одного из них являются истинными, я хочу превзойти определенную функцию. Какой самый элегантный способ вы можете подумать, что позволит мне проверить это условие в одном выражении if()? Целевой я...
18 дек. '08 в 14:27
8

Оптимизация Long.bitCount

У меня есть программа, которая производит огромное количество вызовов Long.bitCount(), поэтому многие из них занимают 33% циклов на одном ядре процессора. Есть ли способ реализовать его быстрее, чем версия Sun JDK? Я пробовал: Этот алгоритм (я дум...
29 янв. '11 в 20:06
3

Как этот алгоритм подсчитывает количество заданных битов в 32-битном целочисленном?

int SWAR(unsigned int i) { i = i - ((i >> 1) & 0x55555555); i = (i & 0x33333333) + ((i >> 2) & 0x33333333); return (((i + (i >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24; } Я видел этот код, который с...
27 февр. '14 в 22:16
9

Эффективное вычисление веса Хэмминга в matlab

Учитывая, что MATLAB uint32 интерпретируется как битовая строка, что является эффективным и сжатым способом подсчета количества ненулевых битов в строке? У меня есть рабочий, наивный подход, который перебирает биты, но это слишком медленно для моих ...
21 июн. '09 в 22:40
2

.NET эквивалент Java Integer.bitCount?

Есть ли метод, похожий на Java Integer.bitCount(int) или Long.bitCount(long) в любом месте .NET Framework? (Для тех, кто не знаком с этими Java-методами) это также называется: Вес Хэмминга Количество посещений (часто называемое POPCNT при испол...
06 мая '11 в 10:37
3

Как создать командную инструкцию sse4.2 popcnt

Использование программы c: int main(int argc , char** argv) { return __builtin_popcountll(0xf0f0f0f0f0f0f0f0); } и строка компилятора (gcc 4.4 - Intel Xeon L3426): gcc -msse4.2 poptest.c -o poptest Я НЕ получаю встроенную сборку popcnt, а ...
21 июн. '11 в 15:02
2

Индексирование на основе веса Хэмминга

Предположим, что мы имеем целое число bitsize n=4; Проблема, которую я описываю, заключается в том, как вы могли бы индексировать число в позицию массива на основе веса Хэмминга и его значения, зная bitsize. Например. Массив с 16 элементами для битр...
24 нояб. '12 в 15:53
2

Быстрый popcount на Intel Xeon Phi

Я внедряю сверхбыстрый popcount на Intel Xeon® Phi®, так как это точка доступа для различных программ биоинформатики. Я реализовал пять частей кода, #if defined(__MIC__) #include <zmmintrin.h> __attribute__((align(64))) static const uint32_t ...
23 апр. '13 в 8:26
4

Бит popcount для большого буфера, желательно сборка

Я ищу самый быстрый способ popcount на большой буфер размером 512 или более байт. Я могу гарантировать любое требуемое выравнивание, а размер буфера всегда равен 2. Буфер соответствует распределению блоков, так что обычно бит либо установлен, ни уста...
12 сент. '10 в 6:28
1

Как вызвать инструкцию ЦПУ с С#?

Мой процессор (Intel i7) поддерживает POPCNT instruction, и я хотел бы назвать его из моего приложения С#. Возможно ли это? Я считаю, что где-то я читал, что это не так, но JIT будет вызывать его, если он найдет его доступным, но какую функцию мне ...
13 мар. '15 в 19:34
8

C для подсчета количества бит "1" в неподписанном char

Мне нужен код C, чтобы вернуть число 1 в unsigned char в C. Мне нужно объяснение, почему оно работает, если оно не очевидно. Я нашел много кода для 32-разрядного номера, но не много для unsigned char.
30 мар. '09 в 16:36
2

Каков самый быстрый алгоритм для компьютера для всех перестановок двоичного числа с одинаковым весом для помех?

Я хочу, чтобы алгоритм вычислил все перестановки двоичного числа фиксированного размера с заданным весом для помех. Например, если вес взлома равен 2, а двоичный размер равен 4, то есть следующие выходы: 0011 0110 0101 1100 1010 1001 Число таких к...
03 янв. '15 в 14:04
1

Рассчитать вес Хэмминга и/или расстояние в VBA Excel

Я пытаюсь сравнить клиентов, два на два, чьи качества могут быть определены двоичными вариантами (например, клиент использует продукт или нет). После многократного поиска в Интернете, похоже, что Id должен использовать расстояние Хэмминга для этого ...
16 мар. '16 в 19:59
1

Почему моя весовая функция Хэмминга работает на C, но не в Rust?

У меня есть следующий код веса Хэмминга в Rust, и он возвращает мусор для 0xffff и 0xffffffff, но идентичный код в C работает, поэтому я должен неправильно понимать, как Rust выполняет операции на уровне бит, Он полностью заключен в скобки, поэтому ...
25 апр. '17 в 13:44