bit-shift- все статьи тега


Почему левый бит-сдвиг,"<<", для 32-разрядных целых чисел не работает, как ожидалось, когда используется более 32 раз?

Когда я пишу следующую программу и использую компилятор GNU C++, выводом является 1, что, по-моему, связано с операцией вращения, выполняемой компилятором. #include <iostream> int main() { int a = 1; std::cout << (a << 32) << std::endl; return 0; } Но логически, поскольку сказано, что биты теряются, если они переполняют разрядность, выход должен быть равен 0. Что происходит? Код находится на ideone, http://ideone.com/VPTwj . ...

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

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

В два раза быстрее, чем сдвиг битов?

Я смотрел на источник sorted_containers и был удивлен, увидев эта строка: self._load, self._twice, self._half = load, load * 2, load >> 1 здесь load - целое число. Зачем использовать сдвиг битов в одном месте и умножение в другом? Кажется разумным, что сдвиг битов может быть быстрее, чем целочисленное деление на 2, но почему бы не заменить умножение на сдвиг? Я сравнил следующие случаи: (раз, деление) (сдвиг, shift) (раз, смена) (сдвиг, разрыв) и обнаружил, что #3 последовательно бы ...

Как работают операторы сдвига в Java? [дубликат]

этот вопрос уже есть ответ здесь: что такое операторы побитового сдвига (bit-shift) и как они работают? 8 ответов Я пытаюсь понять операторов сдвига и не мог получить много. Когда я попытался выполнить приведенный ниже код System.out.println(Integer.toBinaryString(2 << 11)); System.out.println(Integer.toBinaryString(2 << 22)); System.out.println(Integer.toBinaryString(2 << 33)); System ...

Java: проверка, если бит равен 0 или 1 в длинном

какой метод вы бы использовали, чтобы определить, является ли бит, представляющий 2^x 1 или 0 ? ...