bit-manipulation

Flags enum & bitwise operations vs. " string of bits"

Inny programista zasugerował, aby zapisać wybrane dni tygodnia jako 7-znakowy ciąg 1 i 0, tj. "1000100" dla poniedziałku i Pi ... na ciągach. Potrzebuję lepszych / mocniejszych argumentów. Dlaczego warto używać Flag enums zamiast prostych ciągów bitowych?

Algorytm liczenia bitów (Brian Kernighan) w złożoności czasu całkowitego

Czy ktoś może wyjaśnić, dlaczego algorytm Briana Kernighana przyjmuje O (log N) do liczenia ustawionych bitów (1s) w liczbie ... k to działa, czyszcząc prawy ustawiony bit jeden po drugim, aż stanie się 0, ale po prostu nie wiem, jak dostajemy O (log N).

Maska bitowa w C

Jaki jest najlepszy sposób na zbudowanie maski bitowej w C z m ustawionymi bitami poprzedzonymi k unset bitami, a następnie n unset bitami: 00..0 11..1 00..0 k m n Na przykład, k= 1, m = 4, n=3 spowoduje maskę bitową: 01111000

Szybkie obliczanie log2 dla 64-bitowych liczb całkowitych

Wielki zasób programowania, bit Twidling Hacki, proponuje ( Tutaj ) następującą metodę obliczania log2 32-bitowej liczby całk ... iść, aby rozszerzyć algorytm do 64-bitowych liczby całkowite. Jakieś wskazówki jak wyglądałby 64-bitowy algorytm tego typu?

Operacje bitowe w PHP?

Rozumiem, że operacje bitowe są niezbędne do programowania niskopoziomowego, takiego jak pisanie sterowników urządzeń, niskop ... Zajmuję się PHP od kilku lat, a operacje bitowe widziałem bardzo rzadko w projektach PHP. Możesz podać mi przykłady użycia?

Co oznacza Podwójna tylda ( ~ ~ ) w języku Java?

Przeglądając kod źródłowy Guava, natknąłem się na następujący fragment kodu (część implementacji hashCode dla klasy wewnętrzn ... E == ~~Integer.MAX_VALUE; Daje ostrzeżenie kompilatora "porównywanie identycznych wyrażeń", które w zasadzie go gwoździuje.

Liczba bitów: preprocesor magic vs modern C++

Załóżmy, że chcę utworzyć tabelę wyszukiwania liczby bitów w czasie kompilacji dla 64-bitowych liczb całkowitych w 16-bitowyc ... 2) unsigned int lookup[65536] = { COUNT_BITS }; Czy istnieje nowoczesny (C++11/14) sposób na uzyskanie tego samego wyniku?

Co robi i 0xFF?

W następującym kodzie: short = ((byte2 << 8) | (byte1 & 0xFF)) Jaki jest cel &0xFF? Bo inne widze to napisane jako: short = ((byte2 << 8) | byte1) I to też działa dobrze?

"Odizoluj" określony wiersz/kolumnę / przekątną od 64-bitowej liczby

Ok, rozważmy liczbę 64-bitową, której bity tworzą tabelę 8x8. Np. 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1 ... ę. (b) to jest to, co zbliża się do tego, co mam na myśli : http://chessprogramming.wikispaces.com/Kindergarten + Bitboardy

Jaki jest cel unsigned right shift operator "> > > " w Javie?

Rozumiem, co robi unsigned right shift operator ">>>" w Javie, ale dlaczego go potrzebujemy i dlaczego nie potrzebujemy odpowiedniego unsigned Left shift operator?

Wywiad z Microsoftem: transformacja matrycy

Dana macierz wielkości n x M wypełniona przez 0 i 1 Np.: 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 ... MatrixTransformer mt = new MatrixTransformer(a, 4, 5); mt.transform(); System.out.println(mt); } }

Java" Bit Shifting " Tutorial? [zamknięte]

Zamknięte. to pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi. ... na myśli (ale szukam tutoriala, który wyjaśni każdą możliwą operację): {]} byte b = (byte)(l >> (8 - i << 3));

Jaki jest skuteczny sposób liczenia ustawionych bitów w pozycji lub niższej?

Podane {[1] } z dowolną liczbą ustawionych bitów i pozycją bitową X (0-63) Jaki jest najbardziej efektywny sposób liczenia b ... k policzyć liczbę ustawionych bitów w 32-bitowej liczbie całkowitej? ponieważ pyta o wszystkie bity nie z zakresu od 0 do X

Konwertuj 0x1234 na 0x11223344

Jak rozszerzyć liczbę szesnastkową 0x1234 do 0x11223344 w sposób wydajny? unsigned int c = 0x1234, b; b = (c & 0xff) < ... dne w większości przypadków, ponieważ zwykle potrzebujesz tylko RGB części i zakłada się, że przezroczystość nie jest obecna.

Unsigned Integer in Javascript

Pracuję nad stroną, która przetwarza informacje o adresie IP, ale dławi się tym, że liczby całkowite są podpisane. Używam ope ... e( (1 << 32) +"<br/>"); </script> </body> </html> Wynik: 1073741824 -2147483648 1

Znajdź najbardziej znaczący bit (lewy-najbardziej) ustawiony w tablicy bitów

Mam implementację tablicy bitowej, gdzie 0-ty indeks jest MSB pierwszego bajtu w tablicy, 8-ty indeks jest MSB drugiego bajtu ... ale potrzebuję pierwszego najbardziej znaczącego. Tak więc, biorąc pod uwagę 0x00A1, chcę 8 (ponieważ jest to 9 bit Z Lewej).

Sekwencja De Bruijna dla '2^n-1': Jak jest skonstruowana?

Patrzę na wpis Znajdź bazę logów 2 N-bitowej liczby całkowitej w operacjach o(lg (N)) Z multiply i lookup z bit Twidling hac ... po prostu zmieniając mnożnik i zmieniając tabelę. Skąd wiedzieli, że to możliwe? Co kryje się za matematyką ta optymalizacja?

Jak wykonać mnożenie, używając operatorów bitowych?

Pracuję nad problemem, który udało mi się rozwiązać, wszystko poza ostatnim kawałkiem - nie jestem pewien, jak można mnożyć z ... rów bitowych: 0*8 = 0 1*8 = 8 2*8 = 16 3*8 = 24 4*8 = 32 Czy możesz polecić podejście do rozwiązania tego problemu?

Dodawanie dwóch liczb bez operatora + (Wyjaśnienie)

Wiem, że możemy użyć logiki binarnego add gdzie Sum = a XOR b i Carry = a AND b Mam też rozwiązanie: int add(int a, int b ... turn add(sum,carry); } Nie rozumiem, dlaczego bit carry jest przesunięty lub pomnożony przez 2 podczas każdej rekurencji?

A + B bez operatorów arytmetycznych, Python vs C++

Próbowałem rozwiązać stare pytanie: Napisz funkcję dodającą dwie liczby całkowite A I B. nie powinieneś używać + ani żad ... aczego C++ daje poprawne wyjście 0 podczas gdy Python nie? Jeśli używam Pythona, jak zmodyfikować ten algorytm, aby działał?