Форум: "Потрепаться";
Текущий архив: 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