Вопросы с тегом «bitwise-operators»

низкоуровневые примитивные операции, которые напрямую управляют битовыми комбинациями и двоичными числами

79
Почему битовые маски называют «масками» и какой цели они служат?

Почему "битовые маски" называются так? Я знаю, что они в основном используются для побитовых операций, и использование битовых масок более эффективно, чем использование отдельных переменных. Однако мой вопрос: почему и когда были изобретены битовые маски? Были ли они использованы с ранних...

63
Почему побитовые операторы имеют более низкий приоритет, чем сравнения?

Может ли кто-нибудь объяснить обоснование, почему в группе самых популярных языков (см. Примечание ниже) операторы сравнения (==,! =, <,>, <=,> =) Имеют более высокий приоритет, чем побитовые операторы (&, |, ^ ~) Я не думаю, что я когда-либо сталкивался с использованием, где этот...

60
Использование перечисляемых областей для битовых флагов в C ++

enum X : int(С #) или enum class X : int(C ++ , 11) представляет собой тип , который имеет скрытое внутреннее поле , intкоторый может содержать любое значение. Кроме того, Xв перечислении определен ряд предопределенных констант . Можно привести перечисление к его целочисленному значению и наоборот....

34
Насколько хорош должен быть разносторонний программист для побитовых операций? [закрыто]

Недавно я просматривал некоторый код OpenJDK и нашел там несколько интригующих фрагментов кода, связанных с побитовыми операциями . Я даже задал вопрос об этом на StackOverflow. Еще один пример, который иллюстрирует суть: 1141 public static int bitCount(int i) { 1142 // HD, Figure 5-2 1143 i = i -...

32
Почему каретка использовалась для XOR вместо возведения в степень?

Не то чтобы это действительно было проблемой для любого, кто сталкивался с этой синтаксической проблемой раньше, но я вижу дикую путаницу, возникающую из-за использования caret ( ^) в качестве операции XOR вместо широко принятой математической операции возведения в степень. Конечно, есть много...

28
Когда я проверяю разницу во времени между сдвигом и умножением в C, нет никакой разницы. Зачем?

Меня учили, что сдвиг в двоичном коде намного эффективнее, чем умножение на 2 ^ k. Поэтому я хотел поэкспериментировать, и я использовал следующий код, чтобы проверить это: #include <time.h> #include <stdio.h> int main() { clock_t launch = clock(); int test = 0x01; int runs; //simple...

19
Каковы преимущества использования побитовых операций? [закрыто]

Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 5 лет назад . Прочитав последнюю рассылку CodeProject, я наткнулся...

19
Для чего нужны битовые операторы? [закрыто]

Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 5 лет назад . Языки программирования часто поставляются с различными...

16
Есть ли какое-то преимущество в манипулировании битами в стиле c по сравнению с std :: bitset?

Я работаю почти исключительно в C ++ 11/14, и обычно сжимаюсь, когда вижу такой код: std::int64_t mArray; mArray |= someMask << 1; Это всего лишь пример; Я говорю о побитовой манипуляции в целом. В C ++ есть ли смысл? Вышесказанное искажает сознание и подвержено ошибкам, а использование...

14
Какая ваша любимая битовая техника? [закрыто]

В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и,...

13
Как хранятся отрицательные значения со знаком?

Я смотрел это видео о максимальных и минимальных значениях целых чисел со знаком. Возьмите пример положительного значения со знаком - 0000 0001 Первый бит означает, что число положительное, а последние 7 бит - это само число. Так что это легко интерпретируется как +1. Теперь возьмем пример...

11
Есть ли что-то особенное в номере 65535?

2¹⁶-1 & 2⁵ = 2⁵ (или? Очевидно?) Разработчик спросил меня сегодня, что поразрядно 65535 & 32 то есть 2¹⁶-1 & 2⁵ =? Сначала я подумал, что спонтанно 32, но мне показалось, что легко, после чего я думал несколько минут, а затем ответил 32. 32 кажется правильным, но как? 65535 = 2¹⁶-1 =...

11
Что означает «(int) значение & 0x1, (int) значение & 0x2, (int) значение & 0x4, (int) значение & 0x8»?

«Значение» варьируется от 0 до 15 (его возможные значения). Когда эти 4 условия "если" будут выполнены? Если my (int) value = 2, значит ли это 0010? if ((int)value & 0x1) { //statement here } if ((int)value & 0x2) { //statement here } if ((int)value & 0x4) { //statement here } if...

9
Скорости << >> умножения и деления

Вы можете использовать <<для умножения и >>деления чисел в Python, когда я их рассчитываю, я нахожу, используя способ двоичного сдвига, это в 10 раз быстрее, чем деление или умножение обычным способом. Почему используется <<и >>намного быстрее, чем *и /? Какие процессы за...

9
Можно ли определить все побитовые операторы, используя «побитовый nand», подобно тому, как вся логическая логика может быть построена, используя просто «булевский nand»?

Nand известен как «универсальный» логический элемент, потому что он позволяет вам определять все другие логические логические элементы: not(x) = nand(x,x) and(x, y) = not(nand(x, y)) or(x, y) = nand(not(x), not(y)) nor(x, y) = not(or(x, y)) xor(x, y) = nand(nand(a, nand(a, b)), nand(b, nand(a, b)))...