Запитання з тегом «bit-manipulation»

Маніпулювання окремими шматочками. Оператори, що використовуються, можуть включати побітне значення AND, АБО, XOR, NOT, зсув вліво та вправо.

8
Віднімання упакованих 8-бітових цілих чисел у 64-бітовому цілому на 1 паралельно, SWAR без апаратного SIMD
Якщо у мене 64-бітове ціле число, яке я інтерпретую як масив упакованих 8-бітових цілих чисел з 8 елементами. Мені потрібно відняти константу 1з кожного упакованого цілого числа під час обробки переповнення без результату, коли один елемент впливає на результат іншого елемента. На даний момент у мене є цей код, і …
77 c++  c  bit-manipulation  simd  swar 

11
Як працює обмін змінними XOR?
Хтось може пояснити мені, як працює обмін XOR двох змінних без змінної temp? void xorSwap (int *x, int *y) { if (x != y) { *x ^= *y; *y ^= *x; *x ^= *y; } } Я розумію, ЩО це робить, але чи може хтось провести мене через логіку того, …

6
(x | y) - y чому це не може бути просто x або навіть `x | 0`
Я читав код ядра, і в одному місці я побачив вираз всередині ifоператора, як if (value == (SPINLOCK_SHARED | 1) - 1) { ............ } де SPINLOCK_SHARED = 0x80000000є заздалегідь визначена константа. Цікаво, навіщо нам це потрібно (SPINLOCK_SHARED | 1) - 1- для перетворення типу? результат вираження буде 80000000-- такий …

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

4
Чому компілятори C оптимізують перемикач і якщо інакше
Нещодавно я працював над особистим проектом, коли натрапив на дивну проблему. У дуже тісному циклі у мене є ціле число зі значенням від 0 до 15. Мені потрібно отримати -1 для значень 0, 1, 8, 9 і 1 для значень 4, 5, 12 і 13. Я звернувся до godbolt, щоб …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.