bit-manipulation

Algorytm generowania maski bitowej

Miałem do czynienia z unikalnym problemem generowania maski bitowej na podstawie parametru wejściowego. Na przykład, If par ... r (int i = 0; i < param; i ++) { nMask |= (1 << i); } Chciałbym wiedzieć, czy istnieje lepszy algorytm ~ ~ ~

Najszybszy sposób zaciskania rzeczywistej (stałej/zmiennoprzecinkowej) wartości?

Czy istnieje bardziej efektywny sposób zaciskania liczb rzeczywistych niż użycie instrukcji if lub operatorów trójdzielnych? ... teresująca. Ponadto, MY_MIN i MY_MAX są tego samego typu co wartość, którą chcę zaciśnąć (podwaja się w przykładach powyżej).

Odejmowanie spakowanych 8-bitowych liczb całkowitych w 64-bitowej liczbie całkowitej przez 1 równolegle, SWAR bez sprzętowego SIMD

Jeśli mam 64-bitową liczbę całkowitą, którą interpretuję jako tablicę spakowanych 8-bitowych liczb całkowitych z 8 elementami ... dla rozwiązania w C lub C++, które jest dość przenośne lub tylko teoria za nim, więc mogę zaimplementować własne rozwiązanie.

Najprostszy sposób, aby sprawdzić, czy dwie liczby całkowite mają ten sam znak?

Jaki jest najprostszy sposób, aby sprawdzić, czy dwie liczby całkowite mają ten sam znak? Czy jest jakaś krótka sztuczka bitowa, aby to zrobić?

Arytmetyczny bit-shift na podpisanej liczbie całkowitej

Próbuję dowiedzieć się, jak dokładnie działają arytmetyczne operatory zmiany bitowej w C i jak wpłynie to na podpisane 32-bit ... x << 31; //100000000......00 x = x >> 31; //111111111......11 (Everything is filled with 1s !!!!!) Dlaczego?

Operacje bitowe na 32-bitowych niepodpisanych wejściach?

JavaScript konwertuje operandy na 32-bitowe sygnowane wejścia przed wykonaniem operacji bitowych. Wykonuje również operację z ... >>> 0; /* b == 4164773430 */ var a = 1986735448; var b = (a << 1) >>> 0; /* b == 3973470896 */

Dlaczego kwadratura liczby jest szybsza niż mnożenie dwóch liczb losowych?

Mnożenie dwóch liczb binarnych zajmuje n^2 czasu, jednak kwadrat liczby można zrobić bardziej efektywnie w jakiś sposób. jak to możliwe? Czy to niemożliwe? To szaleństwo!

Używanie operatorów bitowych na flagach

Mam cztery flagi Current = 0x1 Past = 0x2 Future = 0x4 All = 0x7 Powiedzmy, że otrzymuję dwie flagi przeszłości i p ... m? Podobnie jak mogę powiedzieć, że Current nie jest w nim? W ten sposób nie będę musiał testować każdej możliwej kombinacji.

Jak używać operatora bitowego do przekazywania wielu wartości całkowitych do funkcji dla Javy?

W frameworkach aplikacji wciąż widzę frameworki, które pozwalają na przekazywanie wielu wartości Int (zwykle używanych zamias ... wielowartościowymprzykład dla mnie, aby prawidłowo ocenić wiele wartości int przekazywanych przy użyciu operatora bitowego?

Sprawdzanie czy bit jest ustawiony czy nie

Jak sprawdzić, czy określony bit w bajcie jest ustawiony? bool IsBitSet(Byte b,byte nPos) { return .....; }

Szybki sposób generowania pseudolosowych bitów o danym prawdopodobieństwie 0 LUB 1 dla każdego bitu

Zwykle generator liczb losowych zwraca strumień bitów, dla których prawdopodobieństwo zaobserwowania 0 LUB 1 w każdej pozycji ... e względu na jej złożoność postanowiłem zatrzymać się tutaj i wybrać naiwną implementację SIMD. Dziękuję wszystkim za pomoc.

Jak skutecznie obliczyć 2^n-1 bez przepełnienia?

Chcę obliczyć 2 n -1 dla 64-bitowej wartości całkowitej. To co obecnie robię to for(i=0; i<n; i++) r|=1<<i; I z ... akceptuję jego odpowiedź. Ponieważ podobał mi się tabela wyszukiwania } rozwiązanie dostał 50 punktów reputacji za bounty.

Potrzebujesz pomocy w zrozumieniu metody "getbits ()" w rozdziale 2 K & R C

W rozdziale 2, sekcja o operatorach bitowych (sekcja 2.9), mam problem ze zrozumieniem, jak działa jedna z przykładowych meto ... . (Co zweryfikowałem, zarówno kodem jak i Sprawdzam wyniki za pomocą calc.exe -- dzięki Bogu ma widok binarny!) Jakaś pomoc?

funkcja sprawdzająca, czy n-ty bit jest ustawiony w bajcie

Chcę prostej funkcji C, która zwróci true, jeśli n-ten bit w bajcie jest ustawiony na 1. W przeciwnym razie zwróci false. Jest to funkcja krytyczna pod względem czasu wykonania, więc myślę o najbardziej optymalnym sposobie, aby to zrobić.

Znajdź trzy numery pojawiły się tylko raz

W ciągu długości n, gdzie n=2K+3, czyli istnieją K liczby unikalne występujące dwukrotnie a trzy numery pojawiły się tylko ra ... zielić sekwencję na 2 części o jeden bit wyniku, który wynosi 1, i ponownie zastosuj XOR do 2 części, a znajdziemy odpowiedź.

Jak obliczyć całkowitą wartość bezwzględną

Jak obliczyć całkowitą wartość bezwzględną bez użycia warunku if. Chyba musimy użyć jakiejś operacji bitowej. Czy ktoś może pomóc?

Manipuluj bajtami Alfa Java / Android color int

Jeśli mam int w Javie, którego używam jako koloru Androida( do rysowania na płótnie), jak manipulować tylko składnikiem Alfa ... Najlepiej byłoby pomnożyć te pierwsze bajty przez to, czym jest factor, a nie po prostu ustawić bajty na wartość statyczną.

Java: przesunięcie w prawo na liczbę ujemną

Jestem bardzo zdezorientowany w prawej operacji zmiany liczby ujemnej, oto kod. int n = -15; System.out.println(Integer.toBi ... 111111111111111110001 11111111111111111111111111111111 Dlaczego prawo przesunięcie liczby ujemnej o 31 a nie 1 (bit znaku)?

Jaki jest najszybszy sposób na podzielenie liczby całkowitej przez 3?

int x = n / 3; // <-- make this faster // for instance int a = n * 3; // <-- normal integer multiplication int b = (n << 1) + n; // <-- potentially faster multiplication

Pierwszeństwo i operacje na maskach bitowych

Natknąłem się na (pozornie) bardzo dziwny przypadek. Weź liczbę 2 (0b10) i bitmaskuj ją za pomocą 1 (0b01) To powinno wytwo ... - więc może gdzieś się pomyliłem? Jednak w Pythonie: 0b10 & 0b01 == 0 = True 0b10 & 0b01 != 0 = False ...więc?