![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
побитовое исключающее ИЛИ [D6, Win2k]
avr555 © (2002-01-24 16:07:00)Где мне найти в Delphi побитовое исключающее ИЛИ?
DeCompiler (2002-01-28 20:43:00) [1]На самом деле ;)) нам и не обязательно знать, где это сравнение происходит, факт - оно есть.
О пасе, так о пасе, но XOR - это инструкция проца и дельфа её юзает ее соответствено, на уровне асма
(на котором эта дельфа и написана). Xor в дельфе и xor в асме в принципе одно и то же, разве что в
дельфе нас не заботит содержимое и размер операндов (байты, ворды, дворды и т.д.). А процедура одинакова
mov [регистр1],[операнд1]
mov [регистр2],[операнд2]
xor [регистр1],[регистр2]
Хоть в пасе, хоть в си, хоть в фортране с азой :)) Процы Intel, они и в Африке процы Intel (только черные)
и инструкции с ними...
А вообще вопрос был: "Где мне найти в Delphi побитовое исключающее ИЛИ?"... Кажется, на него уже
ответили... Xor...
Digitman (2002-01-28 08:27:00) [2]"На самом деле ... сравнение" происходит внутри ALU CPU на уровне микрокода. Но мы-то - о Паскале в дан.случае !
DeCompiler (2002-01-27 16:57:00) [3]На самом деле при использовании xor сравнение ведь происходит, это еще по элементарной алгебре логики известно:
1 xor 1, 0 xor 0 -> 0
1 xor 0, 0 xor 1 -> 1
ЕСЛИ одинаковы ТО 0
ЕСЛИ нет ТО 1
Ну а "если -> то" и есть сравнение...
Преобразования можно достичь всё тем же простейшим присваиванием Result := A xor B, только результат записать в A или B.
A := A xor B.
Digitman (2002-01-24 17:21:00) [4]так СРАВНЕНИЯ или ПРЕОБРАЗОВАНИЯ ? разные ведь вещи абсолютно ! Сравнение не меняет значения операндов, преобразование записывает в результатирующий операнд результат операции.
при выполнении строчки Result:= A XOR B ничего ни с чем не сравнивается (на уровне Паскаля), какого бы типа ни были операнды и то, куда результат выполнения записывается
Romkin (2002-01-24 16:57:00) [5]char(byte(ch1) xor byte(ch2)), но очень просто разгадывается, если, конечно, ключ короче сообщения или тоже текст (а не белый шум)
avr555 (2002-01-24 16:53:00) [6]Ну это что-то типа шифрования.
Если потом получить символ, который является результатом побитового сравнения, то получится элементарное шифрование.
Как это сделать в С я знаю, а вот как в Delphi...
Digitman (2002-01-24 16:50:00) [7]А это зачем, позволь полюбопытствовать, - сравнивать два символа с использованием операции побитового "исключающего ИЛИ" ? это похоже на поездку из Москвы в Питер через Гондурас)Просто сравнение численных значений их кодов тебя не устраивает ?
avr555 (2002-01-24 16:44:00) [8]А как мне сделать, чтобы результат был снова символ?
Иван Шихалев (2002-01-24 16:38:00) [9]
byte(ch1) xorbyte(ch2)
avr555 (2002-01-24 16:32:00) [10]Мне нужно сравнить два символа.
Adder (2002-01-24 16:30:00) [11]а чем
xorне устраивает ?