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

19
Должны ли обертки сравниваться как равные с использованием оператора ==, когда они переносят один и тот же объект?

Я пишу оболочку для элементов XML, которая позволяет разработчику легко анализировать атрибуты из XML. Оболочка не имеет никакого состояния, кроме объекта, который оборачивается. Я рассматриваю следующую реализацию (упрощенную для этого примера), которая включает перегрузку для ==оператора. class...

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

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

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

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

18
Почему оператор стрелки в C ++ не является псевдонимом *.?

В c ++ оператор * может быть перегружен, например, с помощью итератора, но оператор стрелки (->) (. *) Не работает с классами, которые перегружают оператор *. Я полагаю, что препроцессор может легко заменить все экземпляры -> на (* left) .right, и это сделает итераторы более привлекательными...

16
Побитовое ИЛИ против добавления флагов

Я видел, как другие использовали Bitwise-OR для объединения флагов раньше: #define RUN 0x01 #define JUMP 0x02 #define SHOOT 0x04 const byte madPerson = RUN | JUMP | SHOOT; Я тоже так делаю. Но я также видел некоторые (не так много) флаги объединения, используя сложение: #define RUN 0x01 #define...

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

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

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

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

14
Операторы понятнее, чем ключевые слова или функции? [закрыто]

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

14
Когда мне следует использовать оператор неявного преобразования типов в C #?

В C # мы можем перегрузить оператор неявного преобразования следующим образом (пример из MSDN ): struct Digit { /* ... */ public static implicit operator byte(Digit d) // implicit digit to byte conversion operator { /* ... */ } } Таким образом, мы можем иметь тип, пользовательский тип значения ,...

13
Насколько полезны инфиксные операторы в языке программирования?

Насколько полезны инфиксные операторы в языке программирования? Стоят ли они дополнительной сложности, которую они предоставляют? Можете ли вы привести примеры, когда инфиксные операторы лучше подходят для задачи, которую нельзя решить, просто перегружая обычные...

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

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

12
Примеры перегрузки операторов, которые имеют смысл [закрыто]

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

12
Создание нулевых объектов с помощью оператора нуль-слияния

Рассмотрим следующий типичный сценарий: if(myObject == null) { myObject = new myClass(); } Мне интересно, что думают о следующей замене с использованием оператора нуль-слияния: myObject = myObject ?? new myClass(); Я не уверен, должен ли я использовать вторую форму. Это кажется хорошим сокращением,...

11
Почему невозможно перегрузить составной оператор присваивания в C #?

Название вводит в заблуждение, поэтому, пожалуйста, прочитайте весь вопрос :-) . Под «составного оператора присваивания» Я имею в виду конструкцию , как это op=, например +=. Оператор чистого присваивания ( =) не относится к моему вопросу. Под «почему» я имею в виду не мнение, а ресурс (книгу,...

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, связывающего право?

Я пишу код для разбора строк математических выражений и заметил, что порядок, в котором цепочечные операторы вычисляются в Python, отличается от порядка в Excel. С http://docs.python.org/reference/expressions.html : «Таким образом, в непереносимой последовательности степенных и унарных операторов...

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)))...

9
Использование тернарного оператора PHP только с двумя аргументами

Недавно я просматривал часть своего кода и заметил, что в рассеянности я оставил структуру, подобную следующей: $guid = empty($subscription->guid) ? : $subscription->guid; Теперь, он не делал то, что предполагалось, и это неправильно , но, поскольку это свойство всегда установлено, теперь оно...

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

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