W wolnym czasie próbowałem nauczyć się języka C, a inne języki (C #, Java itp.) Mają tę samą koncepcję (i często te same operatory) ... Zastanawiam się co jest na poziomie rdzenia, co czyni nieco przesunięcia ( <<, >>, >>>) zrobić, jakie problemy może pomóc rozwiązać i jakie pułapek czai …
8 bitów reprezentujących liczbę 7 wygląda następująco: 00000111 Ustawione są trzy bity. Jakie są algorytmy do określania liczby ustawionych bitów w 32-bitowej liczbie całkowitej?
Jestem na kursie systemów komputerowych i częściowo zmagam się z Two's Complement . Chcę to zrozumieć, ale wszystko, co przeczytałem, nie przyniosło mi tego obrazu. Przeczytałem artykuł w Wikipedii i różne inne artykuły, w tym moją książkę . Dlatego chciałem rozpocząć ten post na wiki społeczności, aby zdefiniować, czym jest …
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 …
Jaki jest najbardziej wydajny algorytm do osiągnięcia następujących celów: 0010 0000 => 0000 0100 Konwersja odbywa się z MSB-> LSB do LSB-> MSB. Wszystkie bity muszą być odwrócone; to znaczy, nie jest to zamiana endianizmu.
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) …
var attr = ~'input,textarea'.indexOf( target.tagName.toLowerCase() ) ? 'value' : 'innerHTML' Widziałem to w odpowiedzi i nigdy wcześniej tego nie widziałem. Co to znaczy?
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 …
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 …
Jestem całkiem nowy w programowaniu w C i napotkałem maskowanie bitów. Czy ktoś może mi wyjaśnić ogólną koncepcję i funkcję maskowania bitów? Przykłady są bardzo cenione.
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?
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 …
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 …
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.