bit-manipulation

Czym są operatory bitowe przesunięcia (bit-shift) i jak działają?

Próbowałem nauczyć się C w wolnym czasie, i innych języków (C#, Java, itp.) mają tę samą koncepcję (i często te same operator ... co gotchas czają się za zakrętem? Innymi słowy, absolutny przewodnik dla początkujących do zmiany bitu w całej jego dobroci.

Jak policzyć liczbę ustawionych bitów w 32-bitowej liczbie całkowitej?

8 bitów reprezentujących liczbę 7 wygląda tak: 00000111 Ustawiono trzy bity. Jakie są algorytmy do określania liczby ustawionych bitów w 32-bitowej liczbie całkowitej?

Co to jest "dopełnienie 2"?

Jestem na kursie systemów komputerowych i miałem zmagania , częściowo, z dwójką . Chcę to zrozumieć, ale wszystko, co przeczy ... nych i odwrotnie), operacje bitowe i operacje bitowe. Liczę na jasną i zwięzłą definicję , łatwo zrozumiałą dla programisty.

Efektywny algorytm odwracania bitów (od MSB->LSB do LSB - > MSB) w C

Jaki jest najbardziej efektywny algorytm do osiągnięcia: 0010 0000 => 0000 0100 Konwersja jest z MSB->LSB do LSB - > MSB. Wszystkie bity muszą być odwrócone, tzn. jest to , a nie endianess-swapping.

Wyciąganie bitów z pojedynczym mnożeniem

Widziałem ciekawą technikę zastosowaną w Odpowiedzina inne pytanie i chciałbym je trochę lepiej zrozumieć. Otrzymujemy nie ... oda działa dla określonego zestawu bitów? Wreszcie, jak można znaleźć (a?) poprawny mnożnik do wyodrębnienia podanych bitów?

Najbardziej wydajny algorytm odwracania bitów (z MSB->LSB do LSB - > MSB) w C [zamknięty]

Jaki jest najlepszy algorytm do osiągnięcia: 0010 0000 => 0000 0100 Konwersja jest z MSB->LSB do LSB - > MSB. Wszystkie bity muszą być odwrócone, tzn. jest to , a nie endianess-swapping.

Jakie przydatne bitowe sztuczki z kodem operatora powinien wiedzieć programista?

Muszę powiedzieć, że nigdy nie miałem powodów do używania operatorów bitowych, ale jestem pewien, że są pewne operacje, które wykonałem, które byłyby bardziej wydajne. W jaki sposób "przesunięcie" i "OR-ing" pomogły Ci skuteczniej rozwiązać problem?

'and' (logiczny) vs ' & ' (bitowy) - dlaczego różnica w zachowaniu list vs tablic numpy?

Co wyjaśnia różnicę w zachowaniu operacji logicznych i bitowych na listach vs tablicach NumPy? Jestem zdezorientowany co do ... zrozumieć różnicę między operacjami logicznymi i bitowymi, aby wyjaśnić, dlaczego inaczej obsługują listy i tablice NumPy?

Wyjaśnij użycie wektora bitowego do określenia, czy wszystkie znaki są unikalne

Jestem zdezorientowany, jak wektor bitowy mógłby to zrobić (nie jestem zbyt zaznajomiony z wektorami bitowymi). Oto podany ko ... lt; val)) > 0) return false; checker |= (1 << val); } return true; } Szczególnie, co robi checker?

Wyjaśnij ten fragment, który znajduje maksymalnie dwie liczby całkowite bez użycia if-else lub jakiegokolwiek innego operatora porównania?

Znajdź maksymalnie dwie liczby. Nie należy używać if-else ani żadnego innego operatora porównującego. Znalazłem to pytanie na ... t a, int b) { int c = a - b; int k = (c >> 31) & 0x1; int max = a - k * c; return max; }

Bitowe działanie i użycie

Rozważ ten kod: x = 1 # 0001 x << 2 # Shift left 2 bits: 0100 # Result: 4 x | 2 # Bitwise OR: 00 ... przesunięcie w lewo, ale nie dwa pozostałe. Do czego właściwie służą operatory bitowe? Byłbym wdzięczny za kilka przykładów.

Czy powinienem używać #define, enum lub const?

W projekcie C++, nad którym pracuję, mam flagę rodzaj wartości, która może mieć cztery wartości. Te cztery flagi można łączy ... ystym nowoczesnym C++ bez #defines, a ja użyłem przestrzeni nazw i szablonów w kilku spacjach, więc te też nie są wykluczone.

Pozycja najmniejszego znaczącego bitu, który jest ustawiony

Szukam skutecznego sposobu na określenie pozycji najmniej znaczącego bitu, który jest ustawiony w liczbie całkowitej, np. dla ... wią mi, że xyzoptimization jest złe.) [edit] Dziękujemy wszystkim za pomysły! Nauczyłem się też kilku innych rzeczy. Super!

Dlaczego XOR jest domyślnym sposobem łączenia skrótów?

Powiedzmy, że masz dwa hasze H(A) i H(B) i chcesz je połączyć. Czytałem, że dobrym sposobem na połączenie dwóch hashów jest X ... ć intuicję i / lub matematykę, dlaczego XOR powinien być domyślną operacją łączenia funkcji skrótu (zamiast OR LUB AND itp.)?

Za pomocą bitowego lub 0, aby uzyskać liczbę

Mój kolega natknął się na metodę floatowania liczb używając bitowego or: var a = 13.6 | 0; //a == 13 Rozmawialiśmy o tym ... iektórych przypadkach to nie działa? Jasność to oczywiste, ponieważ musieliśmy to rozgryźć, I cóż, piszę to pytanie. Dzięki.

Jak działa Zamiana zmiennych XOR?

Może mi ktoś wyjaśnić jak działa XOR Zamiana dwóch zmiennych bez zmiennej temp? void xorSwap (int *x, int *y) { if (x != ... ^= *x; *x ^= *y; } } Rozumiem, co to robi, ale czy ktoś może przeprowadzić mnie przez logikę, jak to działa?

Dlaczego jeśli (n & -n) == n to N jest potęgą 2?

/ linia kolejowa nr 294 Jawautil.Random source says if ((n & -n) == n) // i.e., n is a power of 2 // rest of the code Dlaczego tak jest?

Zrozumienie bitowego i operatora

O operatorach bitowych w Objective-C czytałem w książce kochana "Programowanie w Objective-C". Jestem bardzo zdezorientowany ... kładzie wszystkie bity z wyjątkiem "prawych 2" są równe 0? Czy jest 2, ponieważ jest 3-1, Biorąc 3 z naszej stałej? Dzięki!