Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.01;
Скачать: CL | DM;

Вниз

Операция XOR   Найти похожие ветки 

 
Витёк   (2005-12-07 20:12) [0]

Объясните пожалуйста! Что такое операция xor(исключающее или)! Как и в каких случаях ей можно воспользоваться!??


 
Kerk ©   (2005-12-07 20:13) [1]

0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0


 
Eraser ©   (2005-12-07 20:14) [2]


> Витёк   (07.12.05 20:12)

Эта операция инвертирует биты.
Т.е. если есть 0 будет 1, если 1 будет 0.


 
DrPass ©   (2005-12-07 20:16) [3]


> Как и в каких случаях ей можно воспользоваться!??

Сначала тебе нужно получить лицензию на ее использование и достичь совершеннолетия

> Eraser ©   (07.12.05 20:14) [2]

Это ты уже с операцией NOT перепутал. Бегом учить булеву алгебру


 
TUser ©   (2005-12-07 20:18) [4]

По сути - проверка на несовпадение


 
vrem   (2005-12-07 20:22) [5]

Витёк, [1] можешь получить сам, используя windows калькулятор, для любой логической операции.
XOR - удобно использовать для выявления отличия от ожидаемого состояния бита.
(ожидаемое состояние бита) xor (текущее состояние бита) - если =1, значит текущее отличается.


 
Дмитрий Белькевич   (2005-12-07 20:27) [6]

Логиика:

1 xor 1 = 0
1 xor 0 = 1
0 xor 1 = 1
0 xor 0 = 0

Вроде не наврал...

Использование:
1. Изменение (инверсия) отдельных битов в байте. Те биты, которые установлены (равны единице) в числе-маске (во втором числе), будут инвертированы в числе-источнике.
2.Примитивное кодирование строк. Двойной ксор даст оригинальное значение строчки. Ломается с пол-пинка, зная число, с которым ксорили, узнать его не сложно. Так же можно ксорить по к-либо более хитрому алгоритму. Меняя маску. Например, первая маска - 1, вторая - 2, итд.
3. Один из вариантов отрисовки с режимом xor. Например, если один и тот же отрезок по канве одним цветом нарисовать два раза с режимом pmxor, то канва останется неизменной.

Ну это то, что сразу вспомнил. Наверняка еще есть варианты.


 
Eraser ©   (2005-12-07 20:28) [7]


> DrPass ©   (07.12.05 20:16) [3]

Гы ) ну эт я криво объяснил. Уже бегу покупать учебник по русской словестности ;-)


 
Хинт ©   (2005-12-07 20:38) [8]

Это для того, чтоб по-модному обнулять регистры =)
xor ax,ax
Ламеры пользуются mov"ами


 
palva ©   (2005-12-07 20:46) [9]

А еще чтоб обменять значение переменных. Ламеры пользуются
промежуточной переменной:

{$APPTYPE CONSOLE}
var
 a, b: Integer;
begin
 a := 555;
 b := 888;
 a := a XOR b;
 b := a XOR b;
 a := a XOR b;
 Writeln(a, " ", b); // 888 555
// Еще можно так, но если не обращать внимания на
// возможное переполнение.
 a := b - a;
 b := b - a;
 a := a + b;
 Writeln(a, " ", b); // 555 888

end.


 
БарЛог ©   (2005-12-07 21:07) [10]

palva ©   (07.12.05 20:46) [9]
Черт возьми, сильно!!


 
TUser ©   (2005-12-07 21:09) [11]


> palva ©   (07.12.05 20:46) [9]

Вот перенесут твой код на машинку/компилитор с другим способом представления отрицательных чисел - будешь программу переписывать.


 
palva ©   (2005-12-07 21:19) [12]

> будешь программу переписывать
Не буду, потому что я ламер.


 
Igorek ©   (2005-12-07 21:25) [13]


> Как и в каких случаях ей можно воспользоваться!??

- нечетное ли число битов в массиве
- обмен
- найти число, которое встречается нечетное число раз в массиве, если остальные - четное число раз
... много других ситуаций


 
Eraser ©   (2005-12-07 21:41) [14]

TCanvas.DrawFocusRect использует именно XOR.


 
Anatoly Podgoretsky ©   (2005-12-07 23:12) [15]

Витёк   (07.12.05 20:12)  
Или там, или там исключая и там и там.
противоположность включающее ИЛИ
Или там, или там включая и там и там


 
Кефир87 ©   (2005-12-08 00:34) [16]

Это все фигня! В каких случаях используют shl и shr?! Мне еще не приходилось...


 
Skyle ©   (2005-12-08 06:56) [17]


> [16] Кефир87 ©   (08.12.05 00:34)

Хм... Наверное когда требуется сдвинуть вправо или влево?


 
Думкин ©   (2005-12-08 07:03) [18]

> Кефир87 ©   (08.12.05 00:34) [16]

Умножение, деление на степени двойки.
a*320 = a*256+a*64 = a shl 8 + a shl 6
320 - из режима 320*200 для VGA


 
БарЛог ©   (2005-12-08 08:44) [19]

У нас в инсте обьясняют вот как:
xor - разноименность (оно же - сложение по модулю два) истина тогда, когда значения аргументов противоположны (для двух агрументов).


 
Хинт ©   (2005-12-08 09:39) [20]

Shl и Shr... Для умножения и работы с отдельными битами.


 
wal ©   (2005-12-08 09:47) [21]


> У нас в инсте обьясняют вот как
Я, когда вел кружок информатики объяснял, как битовое вычитание без учета знака, а для меня самого, как электронщика, это обычный однобитовый полусумматор :)


 
TStas ©   (2005-12-08 18:33) [22]

А еще хором шифруют файлы, но это очень примитивно, т. к. всего 255 наборов, мало очень переборов, зато просто, как 3 коп.



Страницы: 1 вся ветка

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.029 c
2-1134712505
dabreezy
2005-12-16 08:55
2006.01.01
Stack overflow


6-1127280679
VadimX
2005-09-21 09:31
2006.01.01
Как проверить анонимность прокси


2-1134671955
oleggar
2005-12-15 21:39
2006.01.01
threads


1-1133517420
DimLord
2005-12-02 12:57
2006.01.01
Вывод данных таблиц ы на печать


14-1134223686
Влад
2005-12-10 17:08
2006.01.01
Посоветуйте мини пылесос :)