Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
29 / 29 / 4
Регистрация: 29.09.2009
Сообщений: 177
1

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

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

Author24 — интернет-сервис помощи студентам
Всем привет. Скажите, пожалуйста, битовая операция "ИЛИ" эквивалентна операции сложения для двух целых чисел?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2014, 18:35
Ответы с готовыми решениями:

Битовые операции (операция сложения двух целых положительных чисел)
Пишу сюда, потому что времени остается мало, а сам решить никак не могу. Мне нужно написать...

Найти произведение двух неотрицательных целых чисел a и b, используя лишь операции сложения и сравнения
Пусть требуется найти произведение двух неотрицательных целых чисел a и b, используя лишь операции...

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

Операция сложения двух чисел
Написать программу в которой вводятся два числа (типа float) в многострочное окно редактирования...

Для заданных двух чисел произвести операции деления, сложения, умножения, вычитание
Для заданных двух чисел произвести операции деления, сложения, умножения, вычитание

7
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
20.04.2014, 18:41 2
С какого перепугу?
1
619 / 218 / 51
Регистрация: 22.11.2010
Сообщений: 1,781
Записей в блоге: 3
20.04.2014, 18:46 3
ИЛИ подразумевается выбор одного из двух чисел, сложение же операцию И.
почитай булевую математику.
0
29 / 29 / 4
Регистрация: 29.09.2009
Сообщений: 177
20.04.2014, 19:11  [ТС] 4
Цитата Сообщение от Supernatural Посмотреть сообщение
ИЛИ подразумевается выбор одного из двух чисел
C++
1
auto v = 1024 | 8192; // 9216 = 1024 + 8192
Где тут выбор одного из чисел?
0
Заблокирован
20.04.2014, 19:12 5
Побитовое ИЛИ (OR)
0011
0101
0111

Сложение по модулю два (исключающее ИЛИ) (XOR)
0011
0101
0110
XOR является сложением в кольце вычетов по модулю два.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
21.04.2014, 00:10 6
Цитата Сообщение от SaweR Посмотреть сообщение
C++
1
auto v = 1024 | 8192; // 9216 = 1024 + 8192
Вот и выросло поколение, которое использует стандарт C++11 и при этом ничего не знает про двоичные операции.
Попробуйте таким образом "сложить" одинаковые числа например.
1
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
21.04.2014, 01:15 7
Лучший ответ Сообщение было отмечено SaweR как решение

Решение

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

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

Небольшое лирическое отсутпление: если внезапно возник вопрос, а на кой они чёрт, то вот ответ: есть такие перменные - маски. Для экономии места в эру динозавров однобитовые флаги склеивали в один аргумент - dwFlags, например (где dw - double word - двойное слово - два байта - шестнадцать бит - до шестнадцати флагов). Собственно, в наш современный век, когда на питонах и джавах пишут игры и многомиллионные сервисы, такая дикость уже не сильно требуется, но как дань уважения тем динозаврам, что создали столь монструозный язык, в новых редакциях эту операцию всё же предпочитают оставить. Но вообще, можно ведь и складывать флаги - суть та же (ибо флаги - разряды и так разные, а для переменных, где единицы стоят на разных позициях - операции дают всё же одинаковый вариант, но НЕ всегда). Ну тут снова проблема в том, что в те времена ИИ ещё не был создан и компьютер сам не мог понять, что ему быстрее, как и когда делать, он был глуп и выполнял всё не отступая от кода ни на шаг. Сегодня же, везде где надо, компилятор сам сообразит как лучше. Да и разница между побитовым сложением и обычным сложением нет никакой. Абсолютно никакой.
2
29 / 29 / 4
Регистрация: 29.09.2009
Сообщений: 177
21.04.2014, 09:30  [ТС] 8
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Но вообще, можно ведь и складывать флаги
Вот я так тоже и подумал, а потом почитал про битовое ИЛИ и понял что это не так…
В общем, меня эти флаги ввели в заблуждение. Теперь я буду знать точно, что такая склейка используется для экономии трафика.
0
21.04.2014, 09:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2014, 09:30
Помогаю со студенческими работами здесь

Сложение двух чисел Рекурсивное определение операции сложения двух чисел и другие
Помогите составить программы целиком (всё с рекурсией). 1. Сложение двух чисел (а+b)....

Схема сложения или вычитания (выбирается одним входным контактом) двух целых знаковых 2-значных чисел, закоди- рованных
Схема сложения или вычитания (выбирается одним входным контактом) двух целых знаковых 2-значных...

Битовая операция ^ ИЛИ
Добрый вечер, вопрос по поводу битовой операций ^ в boolean. Насколько я знаю ^ возвращает true,...

Битовая операция ИЛИ
Почему последняя операция меняет число, если там 0. string btext = "11100010"; ...

Реализовать операцию умножения целых чисел m и n путем использования операции сложения
Реализовать операцию умножения целых чисел m и n путем использования операции сложения. Нужно...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru