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

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

Войти
Регистрация
Восстановить пароль
 
Maxim09
 Аватар для Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 294
#1

Побитовое "исключающее ИЛИ", совмещённое с присваиванием - C++

18.07.2016, 09:42. Просмотров 318. Ответов 7
Метки нет (Все метки)

Объясните мне плиз что это и как устроено (как работает) а то с разбегу не разобрался

a ^= b

Буду благодарен за пояснения.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2016, 09:42     Побитовое "исключающее ИЛИ", совмещённое с присваиванием
Посмотрите здесь:

C++ Вывести "Молодой" или "Старый" в зависимости от введенного возраста
C++ "Поразрядное Исключающее Или" с присваиванием
C++ Обчисление введенной строки любого формата(пример:"(2+3)/4*2"или"2+3"или ...)
C++ Реализовать условие "больше или равно", "меньше или равно" для простых дробей в классе
C++ Побитовое исключающее ИЛИ (XOR)
C++ Шифрование и дешифрование с использованием алгоритма "исключающее ИЛИ"
C++ Логическая операция "Исключающее Или"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ferrari F1
Форумчанин
459 / 355 / 82
Регистрация: 27.01.2015
Сообщений: 2,134
Записей в блоге: 1
Завершенные тесты: 1
18.07.2016, 10:19     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #2
a = a ^ b;
Maxim09
 Аватар для Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 294
18.07.2016, 10:31  [ТС]     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #3
Оно та понятно что это a ^= b вот это a = a ^ b; НО! что вот это делает?? a ^ b

Добавлено через 1 минуту
На примере покажите мне что и как.
Rius
 Аватар для Rius
1827 / 1212 / 282
Регистрация: 25.05.2015
Сообщений: 4,234
Записей в блоге: 4
Завершенные тесты: 4
18.07.2016, 10:36     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Maxim09 Посмотреть сообщение
что вот это делает??
XOR, исключающее ИЛИ.
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0

Ещё это называют сложением по модулю 2.
Биты складываются, из результата берётся младший бит:
0 + 0 = 00
0 + 1 = 01
1 + 0 = 01
1 + 1 = 10
Nefassa
0 / 0 / 0
Регистрация: 18.07.2016
Сообщений: 2
18.07.2016, 10:36     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #5
Это побитовый логический бинарный оператор исключающее ИЛИ. Значение 1 будет тогда и только тогда, когда биты в операндах отличаются. То-есть это можно увидеть на следующем примере:

01111110
01111111
-----------
00000001
Ferrari F1
Форумчанин
459 / 355 / 82
Регистрация: 27.01.2015
Сообщений: 2,134
Записей в блоге: 1
Завершенные тесты: 1
18.07.2016, 10:38     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #6
a = 010101
b = 000001

010101
^
000001
-----------
010100
Maxim09
 Аватар для Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 294
18.07.2016, 11:51  [ТС]     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #7
Понятно, скажите а как понять следующее?:
C++
1
2
3
4
5
6
for(i = 0; i < 5; i++) 
{
  A[i] ^= a[9-i]
  a[9-i] ^= a[i];
  a[i] ^= a[9-i];
}
Желательно с комментариями.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2016, 11:55     Побитовое "исключающее ИЛИ", совмещённое с присваиванием
Еще ссылки по теме:

"Чудеса типа float" или "Куда девалась информация?" C++
Нужно сделать так, чтобы при вводе числа, выводило "рублей" или "рубль" C++
Алгоритм для реализации оператора "побитовое исключающее ИЛИ" C++
бинарный "++": "Counter" не определяет этот оператор или преобразование к типу приемлемо к встроенному C++
Написать функцию, реализующую логическую операцию "Исключающее ИЛИ" C++

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

Или воспользуйтесь поиском по форуму:
Rius
 Аватар для Rius
1827 / 1212 / 282
Регистрация: 25.05.2015
Сообщений: 4,234
Записей в блоге: 4
Завершенные тесты: 4
18.07.2016, 11:55     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #8
Алгоритм обмена при помощи исключающего ИЛИ

Добавлено через 1 минуту
Обмен значений двух переменных без использования третьей (статья)
Yandex
Объявления
18.07.2016, 11:55     Побитовое "исключающее ИЛИ", совмещённое с присваиванием
Ответ Создать тему
Опции темы

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