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

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

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

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

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

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

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

У меня есть программа, которая производит огромное количество вызовов Long.bitCount(), поэтому многие из них занимают 33% циклов на одном ядре процессора. Есть ли способ реализовать его быстрее, чем версия Sun JDK? Я пробовал: Этот алгоритм (я дум...
задан 29 янв. '11 в 23: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; } Я видел этот код, который с...
задан 28 февр. '14 в 1:16
9
ответов

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

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

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

Есть ли метод, похожий на Java Integer.bitCount(int) или Long.bitCount(long) в любом месте .NET Framework? (Для тех, кто не знаком с этими Java-методами) это также называется: Вес Хэмминга Количество посещений (часто называемое POPCNT при испол...
задан 06 мая '11 в 13: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 в 18:02
2
ответов

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

Предположим, что мы имеем целое число bitsize n=4; Проблема, которую я описываю, заключается в том, как вы могли бы индексировать число в позицию массива на основе веса Хэмминга и его значения, зная bitsize. Например. Массив с 16 элементами для битр...
задан 24 нояб. '12 в 18: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 в 11:26
4
ответов

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

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

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

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

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

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

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

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

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

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

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

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