Dlaczego tak nazywane są „maski bitowe”? Wiem, że są one używane głównie do operacji bitowych, a użycie masek bitowych jest bardziej wydajne niż użycie osobnych zmiennych. Moje pytanie brzmi jednak, dlaczego i kiedy wymyślono maski bitowe? Czy były używane od wczesnych czasów? Czy istnieją inne typy „masek” poza maskami bitowymi …
Czy ktoś mógłby wyjaśnić uzasadnienie, dlaczego w wielu najpopularniejszych językach (patrz uwaga poniżej) operatory porównania (==,! =, <,>, <=,> =) Mają wyższy priorytet niż operatory bitowe (&, |, ^ , ~)? Nie sądzę, że kiedykolwiek spotkałem się z zastosowaniem, w którym ten priorytet byłby naturalny. Zawsze są takie rzeczy jak: …
enum X : int(C #) lub enum class X : int(C ++ 11) jest typem, który ma ukryte wewnętrzne pole int, które może pomieścić dowolną wartość. Ponadto Xw wyliczeniu zdefiniowano szereg predefiniowanych stałych . Możliwe jest rzutowanie wyliczenia na jego liczbę całkowitą i odwrotnie. Dotyczy to zarówno C #, jak …
Przeglądałem ostatnio kod OpenJDK i znalazłem tam intrygujące fragmenty kodu, które mają związek z operacjami bitowymi . Zadałem nawet o tym pytanie na StackOverflow. Kolejny przykład ilustrujący tę kwestię: 1141 public static int bitCount(int i) { 1142 // HD, Figure 5-2 1143 i = i - ((i >>> 1) & …
Nie znaczy to, że tak naprawdę jest to problem dla każdego, kto zmagał się z tym problemem składniowym, ale widzę ogromną dozę zamieszania wynikającą z użycia funkcji caret ( ^) jako operacji XOR zamiast powszechnie akceptowanej operacji matematycznego potęgowania. Oczywiście istnieje wiele miejsc, w których (niewłaściwe) użycie karetki jest wyjaśnione …
Nauczono mnie, że przesuwanie w systemie binarnym jest znacznie wydajniejsze niż mnożenie przez 2 ^ k. Chciałem więc eksperymentować i użyłem następującego kodu, aby to przetestować: #include <time.h> #include <stdio.h> int main() { clock_t launch = clock(); int test = 0x01; int runs; //simple loop that oscillates between int 1 …
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się na jednym problemie, edytując ten post . Zamknięte 5 lat temu . Języki programowania często zawierają różne operatory bitowe (np. Bitowe przesunięcie w lewo i prawo, bitowe AND, …
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 5 lat temu . Po przeczytaniu najnowszego biuletynu CodeProject natknąłem się na ten artykuł na temat operacji bitowych . …
Pracuję prawie wyłącznie w C ++ 11/14, i zwykle kulą się, gdy widzę taki kod: std::int64_t mArray; mArray |= someMask << 1; To tylko przykład; Mówię ogólnie o manipulacji bitami. Czy w C ++ jest naprawdę sens? Powyższe jest zniekształcające i podatne na błędy, a użycie std::bitsetpozwala na: łatwiej modyfikować …
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
Oglądałem ten film na maksymalnych i minimalnych wartościach liczb całkowitych ze znakiem. Weźmy przykład dodatniej wartości ze znakiem - 0000 0001 Pierwszy bit oznacza, że liczba jest dodatnia, a ostatnie 7 bitów to sama liczba. Można to łatwo zinterpretować jako +1. Teraz weźmy przykład ujemnej wartości ze znakiem - 1000 …
„Wartość” wynosi od 0 do 15 (możliwe wartości). Kiedy te 4 warunki „jeśli” zostaną spełnione? Jeśli moja (int) wartość = 2, czy to oznacza 0010? if ((int)value & 0x1) { //statement here } if ((int)value & 0x2) { //statement here } if ((int)value & 0x4) { //statement here } if …
2¹⁶-1 i 2⁵ = 2⁵ (lub? Oczywiście?) Deweloper zapytał mnie dzisiaj, co to jest bitowe 65535 i 32, tj. 2¹⁶-1 i 2⁵ =? Początkowo myślałem spontanicznie 32, ale wydawało mi się to łatwe, po czym myślałem przez kilka minut, a potem odpowiedziałem 32. 32 wydaje się być prawidłową odpowiedzią, ale …
Nand jest znany jako „uniwersalna” bramka logiczna, ponieważ pozwala zdefiniować wszystkie inne logiczne bramki logiczne: not(x) = nand(x,x) and(x, y) = not(nand(x, y)) or(x, y) = nand(not(x), not(y)) nor(x, y) = not(or(x, y)) xor(x, y) = nand(nand(a, nand(a, b)), nand(b, nand(a, b))) Jest to znane jako logika nand i jest …
Możesz używać <<do mnożenia i >>dzielenia liczb w pythonie, kiedy je mierzę, stwierdzam, że użycie binarnego przesunięcia jest 10 razy szybsze niż dzielenie lub mnożenie w zwykły sposób. Dlaczego używa <<i >>jest dużo szybszy niż *i /? Jakie procesy stoją za sceną *i są /tak powolne?
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.