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

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

Войти
Регистрация
Восстановить пароль
 
conf
-11 / 5 / 0
Регистрация: 16.09.2013
Сообщений: 25
#1

а так ли нужен этот ваш xor ? - C++

19.09.2013, 01:08. Просмотров 601. Ответов 15
Метки нет (Все метки)

вот , встал вопрос (читаю шилдта , 3 издание) : а так ли нужен этот ваш xor ? шилдт пишет , что в С++ отсутствует функция xor (исключающая ИЛИ) , но ее можно создать собственными руками из стандартных функций
C++
1
not and or
меня немного смущает практическая сторона вопроса: а где , на практике , приходится применять xor ? чем он полезен ? как бэ , мне интересно знать полезность данной функции . в чем ее преимущество ?
вот , быдлокода накидал для понимания , но пока не вижу пользы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#define sys_ system
#define ok return
#define display std::cout
#define eol std::endl
bool myFunc(bool a, bool b)
{
    ok (a or b) and not(a and b);
}
int main()
{
    int a,b;
    display << "input a: ";
    std::cin >> a;
    display << "input b: ";
    std::cin >> b;
    display << "a and b: " << (a and b) << eol;
    display << "a or b: " << (a or b) << eol;
    display << "not a: " << (not(a)) << eol;
    display << "not b: " << (not(b)) << eol;
    display << "a xor b: " << myFunc(a,b) << eol;
    sys_("pause");
    ok 0;
}
может быть , кто-нибудь объяснит полезные свойства xor ? желательно , случаи из реальной жизни , а не с теории или вики . спасибо .
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
19.09.2013, 01:35     а так ли нужен этот ваш xor ? #2
меня немного смущает практическая сторона вопроса: а где , на практике , приходится применять xor ? чем он полезен ? как бэ , мне интересно знать полезность данной функции . в чем ее преимущество ?

может быть , кто-нибудь объяснит полезные свойства xor ? желательно , случаи из реальной жизни , а не с теории или вики . спасибо .
Проверка того, что выбрано нечётное количество вариантов? Не знаю... Ваш вопрос читается как "может быть, кто-нибудь объяснит полезные свойства сложения? желательно случаи из реальной жизни, а не с теории, вики или учебника арифметики. спасибо".

Просто логические связки — это настолько утилитарная вещь, что сложно дать как-то не казуистический ответ. Но вообще да, чаще всего условия объединяются исключительно && и ||. Видимо, поэтому для xor и не стали вводить отдельную операцию. Хотя, если учесть, что && и || можно вычислять лениво, в отличие от xor...
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
19.09.2013, 01:38     а так ли нужен этот ваш xor ? #3
Цитата Сообщение от conf Посмотреть сообщение
отсутствует функция xor (исключающая ИЛИ)
В смысле boolean XOR (^^), а не bitwise XOR (^)?

Посмотрите обсуждение здесь: Logical xor operator in c++?
Just_Kawaii
1 / 1 / 0
Регистрация: 26.08.2013
Сообщений: 13
19.09.2013, 01:43     а так ли нужен этот ваш xor ? #4
Почему отсутствует XOR? Кто сказал?

C++
1
2
3
4
if ( a ^ b )
{
c = a+ b;
}
Не знаю, у меня все работает... Если вы только не говорите о bool XOR.
conf
-11 / 5 / 0
Регистрация: 16.09.2013
Сообщений: 25
19.09.2013, 01:46  [ТС]     а так ли нужен этот ваш xor ? #5
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Но вообще да, чаще всего условия объединяются исключительно && и ||. Видимо, поэтому для xor и не стали вводить отдельную операцию.
ясно . понятно .
Цитата Сообщение от gazlan Посмотреть сообщение
Посмотрите обсуждение здесь: Logical xor operator in c++?
прочитал .
C++
1
!=
сей ответ набрал 112 баллов .
Цитата Сообщение от gazlan Посмотреть сообщение
В смысле boolean XOR (^^), а не bitwise XOR (^)?
а в чем разница ? (своими словами)

Добавлено через 35 секунд
Цитата Сообщение от Just_Kawaii Посмотреть сообщение
Почему отсутствует XOR? Кто сказал?

C++
1
2
3
4
if ( a ^ b )
{
c = a+ b;
}
Не знаю, у меня все работает... Если вы только не говорите о bool XOR.
именно
Just_Kawaii
19.09.2013, 01:49
  #6

Не по теме:


Вот вам на досуге почитать
http://ru.wikipedia.org/wiki/%D0%9E%...%D0%B8_C%2B%2B

gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
19.09.2013, 01:54     а так ли нужен этот ваш xor ? #7
Цитата Сообщение от conf Посмотреть сообщение
а в чем разница ? (своими словами)
См. мой вопрос (строчкой выше) - в типизации.
conf
-11 / 5 / 0
Регистрация: 16.09.2013
Сообщений: 25
19.09.2013, 01:58  [ТС]     а так ли нужен этот ваш xor ? #8
Цитата Сообщение от gazlan Посмотреть сообщение
См. мой вопрос (строчкой выше) - в типизации.
если честно , то топик не о bitwisе-операциях , а о булевых значениях и операторах .
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
19.09.2013, 02:07     а так ли нужен этот ваш xor ? #9
Цитата Сообщение от conf Посмотреть сообщение
то топик не о bitwisе-операциях , а о булевых значениях и операторах
Пройдите по предложенной ссылке - все ответы на ваши вопросы давно уже даны.
castaway
Эксперт С++
4880 / 3016 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
19.09.2013, 08:26     а так ли нужен этот ваш xor ? #10
А что, есть такие языки где есть bool xor ?
conf
19.09.2013, 15:50  [ТС]
  #11

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
А что, есть такие языки где есть bool xor ?
Pascal
1
if true xor true then false;
Pascal
1
2
3
4
5
6
7
8
9
program logic;
var a,b:boolean;s:string;
begin
writeln('введите 1 a');readln(s);
writeln('введите 1 b');readln(s);
a:=s='1';b:=s='1';
if a xor b then writeln(a,' ',b,' true') else writeln(a,' ',b,' false');
readln;
end.

castaway
Эксперт С++
4880 / 3016 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
19.09.2013, 17:02     а так ли нужен этот ваш xor ? #12
Цитата Сообщение от conf Посмотреть сообщение

Не по теме:


Pascal
1
if true xor true then false;
Pascal
1
2
3
4
5
6
7
8
9
program logic;
var a,b:boolean;s:string;
begin
writeln('введите 1 a');readln(s);
writeln('введите 1 b');readln(s);
a:=s='1';b:=s='1';
if a xor b then writeln(a,' ',b,' true') else writeln(a,' ',b,' false');
readln;
end.

И что? В С++ так тоже можно записать, и это не говорит о том что в С++ есть логический оператор xor.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main() 
{ 
    bool a = true;
    bool b = true;
    std::cout << "a xor b = ";
    if ( a xor b ) {
        std::cout << "true\n";
    } else {
        std::cout << "false\n";
    }
}
conf
-11 / 5 / 0
Регистрация: 16.09.2013
Сообщений: 25
19.09.2013, 19:06  [ТС]     а так ли нужен этот ваш xor ? #13
Цитата Сообщение от castaway Посмотреть сообщение
И что?
Вы , молодой человек , сюда зачем пришли ? Спорить ? Или проповедовать новую религию ?
castaway
Эксперт С++
4880 / 3016 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
19.09.2013, 19:10     а так ли нужен этот ваш xor ? #14
Цитата Сообщение от conf Посмотреть сообщение
Вы , молодой человек , сюда зачем пришли ? Спорить ? Или проповедовать новую религию ?
Изначально я зашел сюда поинтересоваться, в каких-таких языках присутствует логический оператор XOR (замечу, что именно вам это было интересно).
После чего вы мне написали какую-то "белеберду", после чего я с вами не согласился, и возразил.
Что именно вас не устраивает?
conf
-11 / 5 / 0
Регистрация: 16.09.2013
Сообщений: 25
19.09.2013, 19:16  [ТС]     а так ли нужен этот ваш xor ? #15
Цитата Сообщение от castaway Посмотреть сообщение
Изначально я зашел сюда поинтересоваться, в каких-таких языках присутствует логический оператор XOR (замечу, что именно вам это было интересно).
После чего вы мне написали какую-то "белеберду", после чего я с вами не согласился, и возразил.
Что именно вас не устраивает?
Перечитай тему и не набивай посты .
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2013, 19:27     а так ли нужен этот ваш xor ?
Еще ссылки по теме:

Нужен листинг на С++ (даны два вектора, упорядоченные по возрастанию. Слить их в один вектор, так чтобы сохранилась упорядоченность) C++
XOR without XOR C++
Добрый вечер. Ребят, нужен ваш совет C++
C++ XOR шифрование
C++ XOR шифрование

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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4880 / 3016 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
19.09.2013, 19:27     а так ли нужен этот ваш xor ? #16
1. Это не функция.
2. В первом посте нет оператора XOR (^)
3. "а в чем разница ? (своими словами)" - твои слова, еще: "если честно , то топик не о bitwisе-операциях , а о булевых значениях и операторах ."
Yandex
Объявления
19.09.2013, 19:27     а так ли нужен этот ваш xor ?
Ответ Создать тему
Опции темы

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