IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Xor, что это значит и как им пользоваться?
Guest
сообщение 8.12.2005 18:54
Сообщение #1


Гость






Что значит xor? blink.gif
 К началу страницы 
+ Ответить 
volvo
сообщение 8.12.2005 19:02
Сообщение #2


Гость






Исключающее ИЛИ: A xor B принимает значение "Истина" тогда, когда значения A и B неодинаковы... Если и A и B одновременно равны True (или одновременно - False), то Xor вернет "Ложь"...

Кстати, очень удобно: если 2 раза произвести Xor с одним и тем же числом, то первое значение будет восстановлено.

B := 39;
B := B xor 12; { b = 43 }
B := B xor 12; { b = 39 }
 К началу страницы 
+ Ответить 
Altair
сообщение 8.12.2005 21:03
Сообщение #3


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Еще xor используют в алгоритмах шифрования..
http://subway.net.ru/diary/20.07.2003/3


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 9.12.2005 1:43
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Все правильно, но я подумал, что все словесные объяснения сильно проигрывают перед простой табличкой. Для пользы дела привожу тут три таблички для основных операций. Чтобы сохранить форматирование, пользуюсь тегом CODE
Код

 AND              OR               XOR
  | 0 1            | 0 1            | 0 1
-------          -------          -------
0 | 0 0          0 | 0 1          0 | 0 1
1 | 0 1          1 | 1 1          1 | 1 0


Сообщение отредактировано: lapp - 9.12.2005 1:46


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 9.12.2005 16:09
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


с помощью xor можно делать быстрый swap (обмен значениями двух переменных)
Код

a := a xor b;
b := a xor b;
a := a xor b;


a... b...
1100 1010
0110 1010
0110 1100
1010 1100


и еще много вкусных разностей можно делать с помощью xor.


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.12.2005 16:13
Сообщение #6


Гость






Digitalator, я уже говорил, и приводил код, показывающий, что не такой уж он и быстрый ...
 К началу страницы 
+ Ответить 
FreeMan
сообщение 9.12.2005 17:51
Сообщение #7


-
****

Группа: Пользователи
Сообщений: 480
Пол: Мужской

Репутация: -  4  +


To: volvo
И ты действительно был прав. Я у себя проверил. Быстрее - только асм-вставка smile.gif


--------------------
бб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 9.12.2005 22:35
Сообщение #8


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
И ты действительно был прав. Я у себя проверил. Быстрее - только асм-вставка

обычный обмен с использованием 3 переменной быстрее...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
GoodWind
сообщение 9.12.2005 22:39
Сообщение #9


Автооответчик
*****

Группа: Модераторы
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

Репутация: -  16  +


начинается оффтоп mad.gif wink.gif

М
Согласен правильное решение.
от себя: блин уж и поболтать нельзя smile.gif
Altair



--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 12.12.2005 15:05
Сообщение #10


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


Цитата
Digitalator, я уже говорил, и приводил код, показывающий, что не такой уж он и быстрый

Зависит от компилятора (а они бывают разные ...)

Сообщение отредактировано: Digitalator - 12.12.2005 15:08


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 12.12.2005 15:43
Сообщение #11


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


вру .... xor выполняется процессором медленнее чем mov blink.gif с чего бы это ...


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 8:42
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"