Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];

Вниз

Операция 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.012 c
14-1133866955
WondeRu
2005-12-06 14:02
2006.01.01
Добавьте анекдот :)


5-1120198137
Tor
2005-07-01 10:08
2006.01.01
Группировка колонок заглавия в StringGrid е


3-1131456613
oleggar
2005-11-08 16:30
2006.01.01
приведение типов в SQL


2-1134583202
g.town
2005-12-14 21:00
2006.01.01
stringgrid


2-1134429871
timerlan
2005-12-13 02:24
2006.01.01
обявить переменную





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский