Вопросы с тегом «bit-manipulation»

81
Управление альфа-байтами цвета Java / Android int

Если у меня есть int в Java, который я использую в качестве цвета Android (для рисования на холсте), как мне управлять только альфа-компонентом этого int? Например, как я могу использовать операцию для этого: int myOpaqueColor = 0xFFFFFF; float factor = 0; int myTransparentColor =...

80
Эффективный поиск двоичных строк с малым расстоянием Хэмминга в большом наборе

Проблема: Учитывая большой (~ 100 миллионов) список 32-битных целых чисел без знака, входное 32-битное целочисленное значение без знака и максимальное расстояние Хэмминга , верните все элементы списка, которые находятся в пределах указанного расстояния Хэмминга входного значения. Фактическая...

77
Вычитание упакованных 8-битных целых чисел в 64-битное целое на 1 параллельно, SWAR без аппаратного SIMD

Если у меня есть 64-разрядное целое число, которое я интерпретирую как массив упакованных 8-разрядных целых чисел с 8 элементами. Мне нужно вычесть константу 1из каждого упакованного целого числа при обработке переполнения без влияния одного элемента на результат другого элемента. У меня есть этот...

47
(x | y) - y, почему это не может быть просто x или даже `x | 0`

Я читал код ядра, и в одном месте я видел выражение внутри ifоператора, как if (value == (SPINLOCK_SHARED | 1) - 1) { ............ } где SPINLOCK_SHARED = 0x80000000предопределенная константа. Интересно, зачем нам (SPINLOCK_SHARED | 1) - 1- для преобразования типов? результат выражения будет...

22
Для заданных двух целых чисел A и B найдите пару чисел X и Y такую, что A = X * Y и B = X xor Y

Я борюсь с этой проблемой, которую нашел в конкурентной книге по программированию, но без решения, как это сделать. Для заданных двух целых чисел A и B (может соответствовать 64-разрядному целочисленному типу), где A нечетно, найдите пару чисел X и Y, такую, что A = X * Y и B = X или Y. Мой подход...

9
Почему компиляторы C оптимизируют переключение и если по-другому

Недавно я работал над личным проектом, когда наткнулся на странную проблему. В очень узком цикле у меня есть целое число со значением от 0 до 15. Мне нужно получить -1 для значений 0, 1, 8 и 9 и 1 для значений 4, 5, 12 и 13. Я повернулся к Godbolt, чтобы проверить несколько вариантов, и был...