Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Что значит ^= ? - C++

13.05.2017, 13:24. Просмотров 427. Ответов 23
Метки нет (Все метки)

нашел в коде данную фичу (язык С)
не понимаю что конкретно она выполняет
пример из кода
...
mistake ^= i+1;
...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2017, 13:24
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Что значит ^= ? (C++):

Что значит Handle hf? Что в эту функцию нужно передавать - C++
мне нужно создать функцию Node * ReadNode(HANDLE hf); (Node это структура) Так вот вопрос в том что значит Handle hf? Что в эту функцию...

Sleep(8000) - что значит? На что можно заменить в борланд с++? - C++
Не распознаёт Sleep(8000) . Если за комментировать пишет что f заданно но не используется. Как исправить? ...

Что значит? - C++
std::cout << (myCircle.pointInCircle(x, y) ? "In circle" : "Out of circle"); Что означет эта строчка?

Что значит new () - C++
Случайно ошибся и написал double *F1 = new double (count); вместо double *F1 = new double ; компилятор не выдал ошибки,но приложение не...

Что значит ->? - C++
Наткнулся на непонятное место в непонятном коде. Оно показалось мне особенно непонятным, загуглить не получилось. Что значит: new...

что значит ? - C++
что обозначает ? total += Добавлено через 2 минуты вот програма #include <stdio.h> #include <locale.h> #include <conio.h> ...

23
nd2
2821 / 2391 / 851
Регистрация: 29.01.2016
Сообщений: 8,006
13.05.2017, 13:32 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от sampuck Посмотреть сообщение
mistake ^= i+1;
C++
1
mistake = mistake ^ i+1;
http://www.cplusplus.com/doc/boolean/
1
Байт
Эксперт C
17718 / 11739 / 1873
Регистрация: 24.12.2010
Сообщений: 23,550
13.05.2017, 13:36 #3
Эквивалентно
C++
1
mistake = mistake ^ (i+1);
А "^" - это побитовая операция (исключаюшее ИЛИ)
0^0 = 1^1 = 0
0^1 = 1^0 = 1
http://www.c-cpp.ru/books/bitovye-operatory

Добавлено через 1 минуту
Цитата Сообщение от nd2 Посмотреть сообщение
mistake = mistake ^ i+1;
Не помню приоритетов. Скобочки не нужны? Но не повредят - это точно
1
nd2
2821 / 2391 / 851
Регистрация: 29.01.2016
Сообщений: 8,006
13.05.2017, 13:39 #4
Цитата Сообщение от Байт Посмотреть сообщение
Скобочки не нужны?
Нет.

Добавлено через 1 минуту
Цитата Сообщение от Байт Посмотреть сообщение
Но не повредят - это точно
Да, вреда не будет.
0
liv
375 / 342 / 114
Регистрация: 07.10.2015
Сообщений: 1,281
Завершенные тесты: 1
13.05.2017, 13:46 #5
Цитата Сообщение от nd2 Посмотреть сообщение
Да, вреда не будет.
Скорее польза: с беглого взгляда ясен смысл.
Программы все таки пишутся для человека...
1
sampuck
0 / 0 / 0
Регистрация: 13.05.2017
Сообщений: 15
13.05.2017, 14:02  [ТС] #6
так это получается что mistake возведётся в степень (i+1)?
0
Байт
Эксперт C
17718 / 11739 / 1873
Регистрация: 24.12.2010
Сообщений: 23,550
13.05.2017, 14:04 #7
Цитата Сообщение от sampuck Посмотреть сообщение
так это получается что mistake возведётся в степень (i+1)?
Почему? Откуда вы это взяли? Вы хоть читаете, что вам отвечают? А если нет - зачем вопросы задавать?
1
liv
375 / 342 / 114
Регистрация: 07.10.2015
Сообщений: 1,281
Завершенные тесты: 1
13.05.2017, 14:09 #8
sampuck, прочитайте внимательно еще раз пост #3
1
sampuck
0 / 0 / 0
Регистрация: 13.05.2017
Сообщений: 15
13.05.2017, 14:15  [ТС] #9
спасибо, разобрался
0
nd2
13.05.2017, 14:19
  #10

Не по теме:

Цитата Сообщение от _liv_ Посмотреть сообщение
Программы все таки пишутся для человека...
Для программистов.

0
sampuck
0 / 0 / 0
Регистрация: 13.05.2017
Сообщений: 15
13.05.2017, 14:32  [ТС] #11
не подскажите ещё как будет работать данная функция
для i=0 всё понятно, но для i=5, допустим, не понятно как 5 будет сравниваться с нулем, если это логический оператор
я имею в виду вот это

mistake = mistake ^ (5+1)
C++
1
2
3
4
5
6
7
8
9
10
11
char input[1024];
int len;
 
int find_mistake()
    {
        int i, mistake = 0;
            for (i = 0; i < len; i ++)
                    if (input[i] == '1')
                        mistake = mistake ^ (i + 1);
                    return mistake;
    }
0
liv
375 / 342 / 114
Регистрация: 07.10.2015
Сообщений: 1,281
Завершенные тесты: 1
13.05.2017, 14:36 #12

Не по теме:

Цитата Сообщение от nd2 Посмотреть сообщение
Для программистов.
Программисты, что не люди? Ок, пусть будет для подмножества множества людей - программистов...



Добавлено через 1 минуту
sampuck, а руками текст набрать? Текст картинками вообще-то запрещен Правилами...
0
Байт
Эксперт C
17718 / 11739 / 1873
Регистрация: 24.12.2010
Сообщений: 23,550
13.05.2017, 14:37 #13
0^6 = 6
1^6 = 7
2^6 = 4
3^6 = 5
4^6 = 2
5^6 = 5
6^6 = 0
7^6 = 1
(Если нигде не ошибся)
1
eXPonent
99 / 52 / 2
Регистрация: 21.05.2012
Сообщений: 1,170
13.05.2017, 14:37 #14
Цитата Сообщение от Байт Посмотреть сообщение
Не помню приоритетов. Скобочки не нужны? Но не повредят - это точно
лишние скобки удаляются компилятором потом?
0
Байт
Эксперт C
17718 / 11739 / 1873
Регистрация: 24.12.2010
Сообщений: 23,550
13.05.2017, 14:39 #15
Цитата Сообщение от eXPonent Посмотреть сообщение
удаляются компилятором потом?
В результирующем объектом коде их просто вообще нет.
0
13.05.2017, 14:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2017, 14:39
Привет! Вот еще темы с ответами:

что значит /= - C++
Бродил по форуму и наткнулся на вот такой синтаксис temp/=10; а что это значит

Что значит выражение A%=B ? - C++
Что значит A%=B ?

Что значит getch()-48? - C++
Что значит getch()-48?

Что значит char c[10] - C++
объясните пожалуйста пошагово этот код #include &lt;iostream&gt; using namespace std; int main( ) { char c, c2;


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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