Укажите пары эквивалентных булевских операторов.
Операторы эквивалентны, если их таблицы истинности совпадают, т. е. для любой пары аргументов оба оператора дают один и тот же результат.
Если ответ не очевиден, то составьте таблицы истинности для всех упомянутых операторов и сравните их.
1) & и ==
2) | и !=
3) | и ||
4) ^ и !=
Java
Помогите с Джавой!!! И объясните почему
Правильный ответ:
| и || - ок (одно и тоже)
^ и != - ок
a^b :0110
a!=b :0110
| и || - ок (одно и тоже)
^ и != - ок
a^b :0110
a!=b :0110
Nicat Melikov
Спасибо
3 однозначно верный вариант.
1) да
a=1, b=1: a & b = true, a==b = true
a=1, b=0: a & b = false, a==b = false
a=0, b=1: a & b = false, a==b = false
a=0, b=0: a & b = true, a==b = true
2) нет
a=1, b=1: a | b = true, a!=b = false - уже различие
a=1, b=0: a | b = true, a!=b = true
a=0, b=1: a | b = true, a!=b = true
a=0, b=0: a | b = false, a!=b = false
3) да - ибо это вообще одно и то же
4) нет, но это адовый пиздeц
a=1, b=1: a ^ b = false, a!=b = true - отличие
a=1, b=0: a ^ b = true, a!=b = true
a=0, b=1: a ^ b = true, a!=b = true
a=0, b=0: a ^ b = false, a!=b = false
a=1, b=1: a & b = true, a==b = true
a=1, b=0: a & b = false, a==b = false
a=0, b=1: a & b = false, a==b = false
a=0, b=0: a & b = true, a==b = true
2) нет
a=1, b=1: a | b = true, a!=b = false - уже различие
a=1, b=0: a | b = true, a!=b = true
a=0, b=1: a | b = true, a!=b = true
a=0, b=0: a | b = false, a!=b = false
3) да - ибо это вообще одно и то же
4) нет, но это адовый пиздeц
a=1, b=1: a ^ b = false, a!=b = true - отличие
a=1, b=0: a ^ b = true, a!=b = true
a=0, b=1: a ^ b = true, a!=b = true
a=0, b=0: a ^ b = false, a!=b = false
Paata Talakhadze
Ты вообще какую то ересь написал, в яве инт не может использоватся как булевое значение.
Я конечно поступлю не совсем хорошо, дав ответ здесь на ваш вопрос из курса Степика, для остальных тоже))
Но считаю, что помогу кому-то не опустить руки, из-за того, что мысли просто запутались, при том, что тему понимают. В итоге дело лишь во внимательности.
И так, ниже таблица-ответ, взятая за основу из комментария ниже здесь (спасибо). Пройдясь по которой, вы, сверив результаты найдете ответы, какие операторы дают одинаковые булевы значения (true или false):
побит. И и Равентство
& и = =
a=1, b=1: a & b = 1, a==b = true - нет
a=1, b=0: a & b = 0, a==b = false
a=0, b=1: a & b = 0, a==b = false
a=0, b=0: a & b = 0, a==b = true !
побит. ИЛИ и Не равенство
| и !=
a=1, b=1: a | b = 1, a!=b = false - нет
a=1, b=0: a | b = 1, a!=b = true
a=0, b=1: a | b = 1, a!=b = true
a=0, b=0: a | b = 0, a!=b = false
побит. Искл. ИЛИ и Не равенство
^ и !=
a=1, b=1: a ^ b = 0, a!=b = false - да
a=1, b=0: a ^ b = 1, a!=b = true
a=0, b=1: a ^ b = 1, a!=b = true
a=0, b=0: a ^ b = 0, a!=b = false
побит. ИЛИ и лог. ИЛИ
| и | |
a=1, b=1: a | b = 1, a || b = true - да
a=1, b=0: a | b = 1, a || b = true
a=0, b=1: a | b = 1, a || b = true
a=0, b=0: a | b = 0, a || b = false
В примере задачи не имеет значение побитово считать или "сравнивать". Хотя это две разные вещи. Важен лишь ответ - истина или ложь.
Но считаю, что помогу кому-то не опустить руки, из-за того, что мысли просто запутались, при том, что тему понимают. В итоге дело лишь во внимательности.
И так, ниже таблица-ответ, взятая за основу из комментария ниже здесь (спасибо). Пройдясь по которой, вы, сверив результаты найдете ответы, какие операторы дают одинаковые булевы значения (true или false):
побит. И и Равентство
& и = =
a=1, b=1: a & b = 1, a==b = true - нет
a=1, b=0: a & b = 0, a==b = false
a=0, b=1: a & b = 0, a==b = false
a=0, b=0: a & b = 0, a==b = true !
побит. ИЛИ и Не равенство
| и !=
a=1, b=1: a | b = 1, a!=b = false - нет
a=1, b=0: a | b = 1, a!=b = true
a=0, b=1: a | b = 1, a!=b = true
a=0, b=0: a | b = 0, a!=b = false
побит. Искл. ИЛИ и Не равенство
^ и !=
a=1, b=1: a ^ b = 0, a!=b = false - да
a=1, b=0: a ^ b = 1, a!=b = true
a=0, b=1: a ^ b = 1, a!=b = true
a=0, b=0: a ^ b = 0, a!=b = false
побит. ИЛИ и лог. ИЛИ
| и | |
a=1, b=1: a | b = 1, a || b = true - да
a=1, b=0: a | b = 1, a || b = true
a=0, b=1: a | b = 1, a || b = true
a=0, b=0: a | b = 0, a || b = false
В примере задачи не имеет значение побитово считать или "сравнивать". Хотя это две разные вещи. Важен лишь ответ - истина или ложь.
Вадим Тетенков
спасибо
Третий и четвертый вариант :)
Похожие вопросы
- Объясните мне, чайнику. Как это работает?
- Помогите с заданием, я примерно понимаю почему стоит переместить этот метод, но хочу удостовериться, послушав ваше мнени
- Что такое фреймворк? Кто нибудь может вразумительно объяснить, что такое фреймворк? Заранее спасибо)
- Массивы Прочитал несколько статей по массивам, но так и не понял, как они работают. Объясните вкратце и понятно, плз
- объясните зачем метод void в java? как можно проще, я новичек К примеру тут public static void main (string[] args)
- Объясните пожалуйста, что происходит в этом коде:
- Не могу понять ОБЪЕКТЫ в языках программ. Объясните простыми словами
- Объясните, пожалуйста, что такое static?
- C# Помогите написать генератор паролей на C# ,что бы он мог генерировать нужное кол-во паролей.
- JAVA, объясните, пожалуйста, простыми словами