Вопросы с тегом «bit-shift»

1382
Что такое операторы побитового сдвига (bit-shift) и как они работают?

Я пытался изучать C в свободное время, и другие языки (C #, Java и т. Д.) Имеют ту же концепцию (и часто те же операторы) ... Что мне интересно, на уровне ядра, что делает бит сдвига ( <<, >>, >>>) делать, какие проблемы она может помочь решить, и какие подводные камни...

294
Что такое оператор >>> = в C?

Заданный коллегой как загадка, я не могу понять, как на самом деле эта C-программа компилируется и работает. Что это за >>>=оператор и странный 1P1литерал? Я тестировал в Clang и GCC. Предупреждений нет и вывод "???" #include <stdio.h> int main() { int a[2]={ 10, 1 }; while( a[...

288
Действительно ли умножение и деление с использованием операторов сдвига в C быстрее?

Умножение и деление может быть достигнуто с помощью битовых операторов, например i*2 = i<<1 i*3 = (i<<1) + i; i*10 = (i<<3) + (i<<1) и так далее. Действительно ли быстрее использовать скажем (i<<3)+(i<<1)умножить на 10, чем i*10напрямую? Есть ли какие-либо...

150
В два раза быстрее, чем бит-сдвиг, для целых чисел Python 3.x?

Я искал источник sorted_containers и был удивлен, увидев эту строку : self._load, self._twice, self._half = load, load * 2, load >> 1 Вот loadцелое число. Зачем использовать битовый сдвиг в одном месте, а умножение в другом? Представляется разумным, что сдвиг битов может быть быстрее, чем...

84
Приходилось ли вам когда-нибудь использовать битовый сдвиг в реальных проектах?

Приходилось ли вам когда-нибудь использовать битовый сдвиг в реальных проектах программирования? В большинстве (если не во всех) языках высокого уровня есть операторы сдвига, но когда вам действительно нужно их использовать?...

40
Почему 11010100 << 1 равно 110101000, а не 10101000?

Почему, когда я пытаюсь сдвинуть биты для 11010100 2 , результат будет 110101000 2 , а не 10101000 2 . int a = Integer.parseInt("11010100", 2) << 1; Я пытаюсь сделать это: int a = (byte)(Integer.parseInt("11010100", 2) << 1); Но если выходное значение больше 128, все идет в минус, что...