Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SaweR
 Аватар для SaweR
29 / 29 / 1
Регистрация: 29.09.2009
Сообщений: 177
#1

Битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел? - C++

20.04.2014, 18:35. Просмотров 750. Ответов 7
Метки нет (Все метки)

Всем привет. Скажите, пожалуйста, битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2014, 18:35     Битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел?
Посмотрите здесь:

C++ В неубывающей последовательности целых чисел найти количество пар чисел с заданной разностью "D"
Указатели. Необработанное исключение в "0x77c015de" ": 0x00000000: Операция успешно завершена C++
Перегрузка операторов для класса "множество целых чисел" C++
C++ Ввести класс для работы с объектом "множество целых чисел"
C++ Перегрузка "оператора +" для сложения массива объектов
C++ Логическая операция "Исключающее Или"
C++ Описать класс "множество" вещественных чисел, позволяющий выполнять основные операции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
stima
432 / 287 / 16
Регистрация: 22.03.2011
Сообщений: 936
Завершенные тесты: 1
20.04.2014, 18:41     Битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел? #2
С какого перепугу?
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,461
20.04.2014, 18:46     Битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел? #3
ИЛИ подразумевается выбор одного из двух чисел, сложение же операцию И.
почитай булевую математику.
SaweR
 Аватар для SaweR
29 / 29 / 1
Регистрация: 29.09.2009
Сообщений: 177
20.04.2014, 19:11  [ТС]     Битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел? #4
Цитата Сообщение от Supernatural Посмотреть сообщение
ИЛИ подразумевается выбор одного из двух чисел
C++
1
auto v = 1024 | 8192; // 9216 = 1024 + 8192
Где тут выбор одного из чисел?
IrineK
Заблокирован
20.04.2014, 19:12     Битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел? #5
Побитовое ИЛИ (OR)
0011
0101
0111

Сложение по модулю два (исключающее ИЛИ) (XOR)
0011
0101
0110
XOR является сложением в кольце вычетов по модулю два.
Tulosba
:)
Эксперт С++
4383 / 3226 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
21.04.2014, 00:10     Битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел? #6
Цитата Сообщение от SaweR Посмотреть сообщение
C++
1
auto v = 1024 | 8192; // 9216 = 1024 + 8192
Вот и выросло поколение, которое использует стандарт C++11 и при этом ничего не знает про двоичные операции.
Попробуйте таким образом "сложить" одинаковые числа например.
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
21.04.2014, 01:15     Битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел? #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Supernatural Посмотреть сообщение
ИЛИ подразумевается выбор одного из двух чисел, сложение же операцию И.
почитай булевую математику.
Сами-то её читали - ИЛИ, иначе - дизъюнкция, собственно - логическое сложение. Тогда как И, иначе - конъюнкция - логическое умножение.

А по теме, нет. Не эквивалентна. Побитовое ИЛИ: название говорит само за себя - результат есть набор бит, где каждый из них есть дизъюнкция соответствующих битов операндов. Сложение - более сложная операция, так как в случае, если два бита в каком-то разряде одинковы, происходит переполнение разряда: инкремент следующего и обнуление текущего. Так что это разные операции, хотя чем-то они всё же похожи.

Небольшое лирическое отсутпление: если внезапно возник вопрос, а на кой они чёрт, то вот ответ: есть такие перменные - маски. Для экономии места в эру динозавров однобитовые флаги склеивали в один аргумент - dwFlags, например (где dw - double word - двойное слово - два байта - шестнадцать бит - до шестнадцати флагов). Собственно, в наш современный век, когда на питонах и джавах пишут игры и многомиллионные сервисы, такая дикость уже не сильно требуется, но как дань уважения тем динозаврам, что создали столь монструозный язык, в новых редакциях эту операцию всё же предпочитают оставить. Но вообще, можно ведь и складывать флаги - суть та же (ибо флаги - разряды и так разные, а для переменных, где единицы стоят на разных позициях - операции дают всё же одинаковый вариант, но НЕ всегда). Ну тут снова проблема в том, что в те времена ИИ ещё не был создан и компьютер сам не мог понять, что ему быстрее, как и когда делать, он был глуп и выполнял всё не отступая от кода ни на шаг. Сегодня же, везде где надо, компилятор сам сообразит как лучше. Да и разница между побитовым сложением и обычным сложением нет никакой. Абсолютно никакой.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2014, 09:30     Битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел?
Еще ссылки по теме:

C++ Написать программу умножения двух целых чисел "в столбик"
Для последовательности целых, оканчивающейся "8", определить число чисел, больших первого введенного числа C++
C++ Класс "Пара чисел" с перегруженными операциями сложения и умножения
C++ Класс "Длинных чисел", основные арифметические операции (найти причины и способы устранения ошибки)
Написать условие "произведение двух целых чисел больше 30, и хотя бы один из сомножителей больше 8" C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
SaweR
 Аватар для SaweR
29 / 29 / 1
Регистрация: 29.09.2009
Сообщений: 177
21.04.2014, 09:30  [ТС]     Битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел? #8
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Но вообще, можно ведь и складывать флаги
Вот я так тоже и подумал, а потом почитал про битовое ИЛИ и понял что это не так…
В общем, меня эти флаги ввели в заблуждение. Теперь я буду знать точно, что такая склейка используется для экономии трафика.
Yandex
Объявления
21.04.2014, 09:30     Битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел?
Ответ Создать тему
Опции темы

Текущее время: 00:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru