Pytania otagowane jako bit-manipulation

Manipulacja pojedynczymi bitami. Użyte operatory mogą obejmować bitowe AND, OR, XOR, NOT, left-shift i right-shift.





5
Wyodrębnianie bitów za pomocą jednego mnożenia
Widziałem ciekawą technikę zastosowaną w odpowiedzi na inne pytanie i chciałbym ją trochę lepiej zrozumieć. Otrzymujemy 64-bitową liczbę całkowitą bez znaku i jesteśmy zainteresowani następującymi bitami: 1.......2.......3.......4.......5.......6.......7.......8....... W szczególności chcielibyśmy przenieść je na najwyższe osiem pozycji, w ten sposób: 12345678........................................................ Nie obchodzi nas wartość bitów wskazanych przez .i nie trzeba …


10
Najczęstsze operacje bitowe C # na wyliczeniach
Przez całe życie nie pamiętam, jak ustawić, usunąć, przełączyć lub przetestować trochę na polu bitowym. Albo nie jestem pewien, albo je mieszam, ponieważ rzadko ich potrzebuję. Tak więc byłoby miło mieć „ściągawkę”. Na przykład: flags = flags | FlagsEnum.Bit4; // Set bit 4. lub if ((flags & FlagsEnum.Bit4)) == FlagsEnum.Bit4) …


6
Używanie bitowego OR 0 do wpisywania liczby
Mój kolega natknął się na metodę wyprowadzania liczb zmiennoprzecinkowych za pomocą bitów lub: var a = 13.6 | 0; //a == 13 Rozmawialiśmy o tym i zastanawialiśmy się nad kilkoma rzeczami. Jak to działa? Nasza teoria była taka, że ​​użycie takiego operatora rzutuje liczbę na liczbę całkowitą, usuwając w ten …

1
Co oznacza podwójna tylda (~~) w Javie?
Przeglądając kod źródłowy Guava natrafiłem na następujący fragment kodu (część implementacji hashCodeklasy wewnętrznej CartesianSet): int adjust = size() - 1; for (int i = 0; i < axes.size(); i++) { adjust *= 31; adjust = ~~adjust; // in GWT, we have to deal with integer overflow carefully } int hash …


25
Zaokrąglenie do następnej potęgi 2
Chcę napisać funkcję, która zwraca najbliższą następną potęgę liczby 2. Na przykład, jeśli mój sygnał wejściowy to 789, wynik powinien wynosić 1024. Czy jest jakiś sposób na osiągnięcie tego bez użycia żadnych pętli, a jedynie z wykorzystaniem operatorów bitowych?


9
C # int do bajtu []
Muszę przekonwertować plik intna byte[]jeden ze sposobów, aby to zrobić BitConverter.GetBytes(). Ale nie jestem pewien, czy pasuje do następującej specyfikacji: Liczba całkowita ze znakiem XDR to 32-bitowe dane, które kodują liczbę całkowitą z zakresu [-2147483648,2147483647]. Liczba całkowita jest reprezentowana w notacji z dopełnieniem do dwóch. Najbardziej i najmniej znaczące bajty …
172 c#  .net  bit-manipulation  nfs 

11
~ x + ~ y == ~ (x + y) jest zawsze fałszywe?
Czy ten kod zawsze daje wynik fałszywy? Obie zmienne są liczbami int ze znakiem uzupełnienia do dwóch. ~x + ~y == ~(x + y) Wydaje mi się, że powinna istnieć liczba spełniająca warunki. Próbowałem sprawdzić liczby pomiędzy -5000i, 5000ale nigdy nie osiągnąłem równości. Czy istnieje sposób na utworzenie równania, aby …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.