Pytania otagowane jako bit-shift


3
Co to jest operator >>> = w C?
Biorąc pod uwagę kolegę jako zagadkę, nie mogę zrozumieć, jak ten program C faktycznie się kompiluje i działa. Co to jest ten >>>=operator i dziwny 1P1literał? Testowałem w Clang i GCC. Nie ma ostrzeżeń, a wynikiem jest „???” #include <stdio.h> int main() { int a[2]={ 10, 1 }; while( a[ …

19
Czy mnożenie i dzielenie za pomocą operatorów zmiany biegów w C jest rzeczywiście szybsze?
Mnożenie i dzielenie można osiągnąć na przykład za pomocą operatorów bitowych i*2 = i<<1 i*3 = (i<<1) + i; i*10 = (i<<3) + (i<<1) i tak dalej. Czy w rzeczywistości szybsze jest użycie powiedz (i<<3)+(i<<1)do pomnożenia przez 10 niż i*10bezpośrednie? Czy jest jakiś rodzaj danych wejściowych, których nie można pomnożyć …


1
Razy dwa razy szybciej niż przesunięcie bitowe w przypadku liczb całkowitych w Pythonie 3.x?
Patrzyłem na źródło sort_containers i byłem zaskoczony, widząc tę linię : self._load, self._twice, self._half = load, load * 2, load >> 1 Oto loadliczba całkowita. Po co używać przesunięcia bitowego w jednym miejscu, a mnożenia w innym? Wydaje się rozsądne, że przesunięcie bitu może być szybsze niż dzielenie przez całkę …




3
Dlaczego 11010100 << 1 oznacza 110101000, a nie 10101000?
Dlaczego, kiedy próbuję przesunąć bity dla 11010100 2 , wynik to 110101000 2 , a nie 10101000 2 . int a = Integer.parseInt("11010100", 2) &lt;&lt; 1; Próbuję to zrobić: int a = (byte)(Integer.parseInt("11010100", 2) &lt;&lt; 1); Ale jeśli wartość wyjściowa jest większa niż 128, wszystko idzie w minus, co jest …
40 java  bit-shift 
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.