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

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

Войти
Регистрация
Восстановить пароль
 
QWAN
58 / 57 / 1
Регистрация: 02.09.2008
Сообщений: 181
#1

Обьясните пожайлуста как и что делает данный оператор в этом выражении fState [x][y] ^= 1;. Неполный код привожу ниже. - C++

15.10.2008, 10:27. Просмотров 999. Ответов 4
Метки нет (Все метки)

Вот код программы из книжки Ч. Петзолд (Програмирование для Windows® 95)
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
25
26
27
28
#define DIVISIONS 5
...
...
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
static BOOL fState[DIVISIONS][DIVISIONS];
static int cxBlock, cyBlock;
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
int x, y;
 
switch(iMsg)
{
case WM_SIZE :cxBlock = LOWORD(lParam) / DIVISIONS;
cyBlock = HIWORD(lParam) / DIVISIONS;
return 0;
case WM_LBUTTONDOWN :x = LOWORD(lParam) / cxBlock;
y = HIWORD(lParam) / cyBlock;
if(x < DIVISIONS && y < DIVISIONS)
{fState [x][y] ^= 1;
rect.left = x * cxBlock;
rect.top = y * cyBlock;
rect.right =(x + 1) * cxBlock;
rect.bottom =(y + 1) * cyBlock;
InvalidateRect(hwnd, &rect, FALSE);
}
return 0;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2008, 10:27     Обьясните пожайлуста как и что делает данный оператор в этом выражении fState [x][y] ^= 1;. Неполный код привожу ниже.
Посмотрите здесь:

Что делает оператор ! в выражении инструкции? - C++
Меня что то запутали, к примеру : int n=3, n2=0; if(!n != n2) cout &lt;&lt; &quot;\n&quot;; Перенос строки выведется если выражение будет...

Что делает данный код? - C++
for (int i = 0; i&lt;s1.length(); i++) if (s2.find(s1) != string::npos) cout &lt;&lt; s1;

Что делает данный код? - C++
#include &lt;iostream&gt; #include &lt;queue&gt; using namespace std; int main() { queue &lt;int&gt; x1; queue &lt;int&gt; x2; queue &lt;int&gt;...

Скажите, что делает данный код? - C++
Решил немного поэкспериментировать и столкнулся с чем-то новым и непонятным для меня. Что делает этот код? Что он выводит и в зависимости...

Что делает данный код и зачем такое кому-нибудь может понадобиться? - C++
Я ответил на вопрос,но точной формулировки не нашёл,хотел бы свериться(приложения с ответами нет).Задание: Чёрный ящик.Что делается в...

Обьясните что делает программа - C++
Обьясните что делает программа детально, описав все её действия. Программа находит наименьший положительный елемент. вот код: const...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alirp
55 / 50 / 1
Регистрация: 04.05.2008
Сообщений: 273
15.10.2008, 14:17     Обьясните пожайлуста как и что делает данный оператор в этом выражении fState [x][y] ^= 1;. Неполный код привожу ниже. #2
сам оператор ^ означает поразрядное исключающее ИЛИ битовых представлений значений, а сама сторочка fState [x][y] ^= 1; по другому ее можно записать так:
fState [x][y] = fState [x][y] ^ 1;
QWAN
58 / 57 / 1
Регистрация: 02.09.2008
Сообщений: 181
15.10.2008, 14:23  [ТС]     Обьясните пожайлуста как и что делает данный оператор в этом выражении fState [x][y] ^= 1;. Неполный код привожу ниже. #3
Как оператор ^ работает в данном массиве? Напримере эсли можно
fState [x][y] =fState [0][1] ^ 1 что будет происходить?
Alirp
55 / 50 / 1
Регистрация: 04.05.2008
Сообщений: 273
15.10.2008, 15:08     Обьясните пожайлуста как и что делает данный оператор в этом выражении fState [x][y] ^= 1;. Неполный код привожу ниже. #4
Значение элементов массива могут быть только TRUE или FALSE (0 или 1), после операции fState [x][y] ^= 1, элементу массива будет присвоено значение противоположное изначальному (инвертированное).
То есть если fState [x][y] = 1, по после операции исключающее ИЛИ, fState [x][y] будет равно нулю и наоборот, если fState [x][y]=0, то после операнции будет равно еденице.
1^1=0;
0^1=1;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2008, 18:02     Обьясните пожайлуста как и что делает данный оператор в этом выражении fState [x][y] ^= 1;. Неполный код привожу ниже.
Еще ссылки по теме:

обьясните что именно делает функция this - C++
Обьяснте пожалуйста что делает функция this?

Обьясните, что означает данный элемент t? - C++
int max, max_i, min, i, j, t; bool flag=0; // &quot;2.) номера строк и столбцов всех седловых точек матрицы.\n\n&quot; //Матрица А...

Обьясните пожалуйста, что делает эта программа? - C++
#include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;iostream.h&gt; #define size unsigned char class Matrix{ size m,n; //Размеры...

Обьясните пожалуйста что делает эта программа - C++
#include &lt;iostream&gt; using namespace std; int main (void) { unsigned char a=(int)127; a&lt;&lt;=2; a&amp;=52; a|=3; ...


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

Или воспользуйтесь поиском по форуму:
QWAN
58 / 57 / 1
Регистрация: 02.09.2008
Сообщений: 181
16.10.2008, 18:02  [ТС]     Обьясните пожайлуста как и что делает данный оператор в этом выражении fState [x][y] ^= 1;. Неполный код привожу ниже. #5
Alirp,спасибо огромное. Теперь я разобрался.
Yandex
Объявления
16.10.2008, 18:02     Обьясните пожайлуста как и что делает данный оператор в этом выражении fState [x][y] ^= 1;. Неполный код привожу ниже.
Ответ Создать тему
Опции темы

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