Показать сообщение отдельно
Старый 31.12.2008, 07:37   #18
Shirase
AnyKey`щик
 
Аватар для Shirase
 
Регистрация: 24.12.2008
Сообщений: 8
Написано одно полезное сообщение
Ответ: очень маленькие хинты

Ну наверно все это знают:
Cвич булевой переменной:
flag=flag xor 3
или
flag=1-flag

Функция сложения по модулю 2 (xor)
Почему xor называется "сложение по модулю 2"? Потому что так оно и есть: в двоичной системе 0+0=0, 0+1=1+0=1, 1+1=10, а по модулю 2 (остаток от деления на 2) последняя сумма как раз и даёт 0.
Во-первых, при инвертировании одного из аргументов эта функция также инвертируется. Во-вторых, эта функция показывает, когда аргументы не равны (а при инвертировании одного из аргументов - когда равны). В-третьих, она позволяет проводить управляемое инвертирование: при нулевом аргументе другой аргумент не меняется, при единичном же значении второй аргумент инвертируется. Наконец, эта функция инволютивна (её повторное применение возвращает к исходному аргументу): если (x3=x1 xor x2), то (x3 xor x1=x2) и (x3 xor x2=x1).
Почему Xor нет в BlitzMAX???
__________________

технологии это смешно!
http://upyachka.ru/
http://z0r.de/
We calling REVOLUTION!
ZX Spectrum Forever!!!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ffinder (31.12.2008)