Как перегрузить оператор |= на перечисление с областью действия?

Как я могу перегрузить оператор |= на строго типизированном (scoped) enum (в C++11, GCC)? Я хочу протестировать, установить и очистить биты на строго типизированных перечислениях. Почему сильно набрано? Потому что мои книги говорят, что это хорошая ...

Разница между ними! и ~ в c#

Когда я впервые узнал, как писать программы, я использовал C. (очень простые приложения командной строки) В обоих языках вы используете ! - оператор обычно выглядит так: if(!true){ //false.. } Я хотел сделать некоторую битовую маскиров ...

Очистить нижние 16 бит

Я не очень хорошо разбираюсь в побитовых операторах, поэтому, пожалуйста, извините за вопрос, но как бы я очистил нижние 16 бит 32-битного целого числа в C / C++? Например, у меня есть целое число: 0x12345678, и я хочу сделать это: 0x12340000 ...

Понимание побитовых операций и их применения в Java

Я думаю, что понимаю, что они принципиально делают-оперируют битами (flip, shift, invert и т. д...). Моя проблема заключается в том, что я не знаю, когда мне понадобится их использовать, и я не думаю, что полностью понимаю биты. Я знаю, что в бай ...

Как разделить unsigned long int (32 бит) на 8 кусочков?

Извините, если мой вопрос сбивает с толку, но вот пример того, что я хочу сделать, Допустим, у меня есть unsigned long int = 1265985549 в двоичном коде я могу записать это как 01001011011101010110100000001101 Теперь я хочу разделить это двоичное 3 ...

24-32-битное преобразование в Java

Я заинтересован в новом проекте IoT под названиемOpenBCI , который в основном является открытым исходным кодом ЭЭГ для чтения и обработки мозговых волн и других биологических данных. В своих документах они утверждают, что данные, передаваемые по возд ...

Почему побитовый сдвиг с 0 в JavaScript дает странные результаты в некоторых случаях

Просто поиграл с необычными побитовыми операциями в JavaScript, и в некоторых случаях я получил странные результаты: обычные случаи 1 << 0 // returns 1, makes sense 100 << 0 // returns 100, makes sense 100 >> ...

Почему побитовый оператор XOR C / C++ заботится о знаке? [дубликат]

На этот вопрос уже есть ответ здесь: неявные правила преобразования типов в операторах C++ 9 ответов Как работают правила продвижения, ког ...

Ошибка в компиляторе или недоразумение? Или оператор на шортах [дубликат]

На этот вопрос уже есть ответ здесь: побитовый оператор or, используемый для расширенного знака операнда в Visual Studio 2015 2 ответа У меня есть строка к ...

Можно ли использовать побитовые операторы вместо логических?

Побитовые операторы работают с битами, логические операторы оценивают булевы выражения. Если выражения возвращают bool, Почему бы нам не использовать побитовые операторы вместо логических? В этом примере я использую побитовое вместо логического: #i ...

Почему смещение больше, чем допустимые биты, все еще работает?

У меня есть int8_t, и я хотел посмотреть, что произойдет, если я сдвину его влево дальше, чем на 8 бит. Вот что я сделал: int8_t x = 1; std::cout << (x << 10); По какой-то причине это возвращает 1024, как если бы тип содержал достато ...

Странное поведение оператора Python.исключающее или

Я работаю над головоломкой шифрования и мне нужно взять исключительное или из двух двоичных чисел (я использую пакет operator в Python). Если я запускаю operator.xor(1001111, 1100001), Например, я получаю очень странный вывод 2068086. Почему он не ...

Есть ли более эффективный способ получить длину 32-битного целого числа в байтах?

Я хотел бы получить ярлык для следующей маленькой функции, где производительность очень важна (функция вызывается более 10.000.000 раз): inline int len(uint32 val) { if(val <= 0x000000ff) return 1; if(val <= 0x0000ffff) return 2; ...

Оператор дополнения Python in-place

Python имеет обычный побитовые операторы, как ~, &, |, и т. д. и операторы на месте любят +=, &=, и т.д. чтобы упростить выражения типа: a = a & 34234 a = a + 577 Кому: a &= 34234 a += 577 Несмотря на то, что оператор дополнен ...

Не (~) против отрицания(!)

#include <iostream> using namespace std; int main(int argc, char *argv[]) { int i=-5; while(~(i)) { cout<<i; ++i; } } Выход -5,-4,-3, -2. Разве он не должен выводить значения до -1?Почему только до -2. И пожа ...

Неожиданный вывод при побитовой операции правого сдвига

int main() { int x = 0xff0000ff; int N_BITS = sizeof (int) * 8; /* 32 */ int l = 0x0; printf ("Right shift expected result: %x\n", 0x80000000 >> (31)); l = (x & (0x00000001 << (N_BITS - 1))); printf ("l = % ...

Когда следует использовать побитовый оператор?

Я прочитал следующие вопросы переполнения стека, и я понимаю различия между побитовым и логическим. разница между & и && в PHP ссылка-Что означает этот символ в PHP? Однако ни один из них не объясняет, когда я должен использовать побит ...

Учитывая два 32-разрядных числа, N и M, и две разрядные позиции, i и j. напишите метод, чтобы установить все биты между i и j в N равными M

Вам даны два 32-разрядных числа, N и M, и две разрядные позиции, i и j. напишите метод, чтобы установить все биты между i и j в N равными M (например, M становится подстрокой N, расположенной в i и начинающейся в j). Пример: вход: N = 100000 ...

Арифметический сдвиг вправо примеры в моем учебнике сдвиг в единицах, когда MSB был равен нулю

В настоящее время я изучаю сборку, а вместе с ней и работу побитовых операций среди них. В частности, меня беспокоит арифметический сдвиг вправо. Теперь в книге, которую я читаю, есть несколько практических задач, среди которых мне нужно выполнить ...

Битовые сдвиги на указателе C?

Я нахожусь в середине этого проекта C, который я хочу сделать очень эффективным для памяти. В некоторых случаях я использую void * из динамической структуры массива, которую я написал для хранения битов. Я хочу использовать все 64 (в данном случае) ...