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

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

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

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

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

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

a ^= b

Буду благодарен за пояснения.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2016, 09:42     Побитовое "исключающее ИЛИ", совмещённое с присваиванием
Посмотрите здесь:
C++ "Поразрядное Исключающее Или" с присваиванием
Алгоритм для реализации оператора "побитовое исключающее ИЛИ" C++
C++ Побитовое исключающее ИЛИ (XOR)
Написать функцию, реализующую логическую операцию "Исключающее ИЛИ" C++
C++ Шифрование и дешифрование с использованием алгоритма "исключающее ИЛИ"
C++ Логическая операция "Исключающее Или"
Определить, какая из точек "В" или "С" расположены ближе к точке "А". C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ferrari F1
Заблокирован
18.07.2016, 10:19     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #2
a = a ^ b;
Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 387
18.07.2016, 10:31  [ТС]     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #3
Оно та понятно что это a ^= b вот это a = a ^ b; НО! что вот это делает?? a ^ b

Добавлено через 1 минуту
На примере покажите мне что и как.
Rius
Эксперт .NET
2338 / 1544 / 362
Регистрация: 25.05.2015
Сообщений: 5,191
Записей в блоге: 8
Завершенные тесты: 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
Заблокирован
18.07.2016, 10:38     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #6
a = 010101
b = 000001

010101
^
000001
-----------
010100
Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 387
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     Побитовое "исключающее ИЛИ", совмещённое с присваиванием
Еще ссылки по теме:
C++ Обчисление введенной строки любого формата(пример:"(2+3)/4*2"или"2+3"или ...)
C++ Реализовать условие "больше или равно", "меньше или равно" для простых дробей в классе
бинарный "++": "Counter" не определяет этот оператор или преобразование к типу приемлемо к встроенному C++
Нужно сделать так, чтобы при вводе числа, выводило "рублей" или "рубль" C++
Для массива из 10 чисел проверить, есть ли в нем два одинаковых числа и напечатать "да" или "нет" C++

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

Или воспользуйтесь поиском по форуму:
Rius
Эксперт .NET
2338 / 1544 / 362
Регистрация: 25.05.2015
Сообщений: 5,191
Записей в блоге: 8
Завершенные тесты: 4
18.07.2016, 11:55     Побитовое "исключающее ИЛИ", совмещённое с присваиванием #8
Алгоритм обмена при помощи исключающего ИЛИ

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

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