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

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

Восстановить пароль Регистрация
 
Maxim09
 Аватар для Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 212
18.07.2016, 09:42     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #1
Объясните мне плиз что это и как устроено (как работает) а то с разбегу не разобрался

a ^= b

Буду благодарен за пояснения.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ferrari F1
Заблокирован
296 / 282 / 62
Регистрация: 27.01.2015
Сообщений: 1,901
Записей в блоге: 1
Завершенные тесты: 1
18.07.2016, 10:19     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #2
a = a ^ b;
Maxim09
 Аватар для Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 212
18.07.2016, 10:31  [ТС]     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #3
Оно та понятно что это a ^= b вот это a = a ^ b; НО! что вот это делает?? a ^ b

Добавлено через 1 минуту
На примере покажите мне что и как.
Rius
 Аватар для Rius
1763 / 1148 / 274
Регистрация: 25.05.2015
Сообщений: 4,075
Записей в блоге: 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
Заблокирован
296 / 282 / 62
Регистрация: 27.01.2015
Сообщений: 1,901
Записей в блоге: 1
Завершенные тесты: 1
18.07.2016, 10:38     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #6
a = 010101
b = 000001

010101
^
000001
-----------
010100
Maxim09
 Аватар для Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 212
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     Побитовое "исключающее ИЛИ", совмещённое с присваиванием
Еще ссылки по теме:

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

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

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

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

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