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

Вниз

побитовое исключающее ИЛИ   Найти похожие ветки 

 
avr555 ©   (2002-01-24 16:07) [0]

Где мне найти в Delphi побитовое исключающее ИЛИ?


 
Adder ©   (2002-01-24 16:30) [1]

а чем xor не устраивает ?


 
avr555 ©   (2002-01-24 16:32) [2]

Мне нужно сравнить два символа.


 
Иван Шихалев ©   (2002-01-24 16:38) [3]

byte(ch1) xor byte(ch2)


 
avr555 ©   (2002-01-24 16:44) [4]

А как мне сделать, чтобы результат был снова символ?


 
Digitman ©   (2002-01-24 16:50) [5]

А это зачем, позволь полюбопытствовать, - сравнивать два символа с использованием операции побитового "исключающего ИЛИ" ? это похоже на поездку из Москвы в Питер через Гондурас)Просто сравнение численных значений их кодов тебя не устраивает ?


 
avr555 ©   (2002-01-24 16:53) [6]

Ну это что-то типа шифрования.
Если потом получить символ, который является результатом побитового сравнения, то получится элементарное шифрование.
Как это сделать в С я знаю, а вот как в Delphi...


 
Romkin ©   (2002-01-24 16:57) [7]

char(byte(ch1) xor byte(ch2)), но очень просто разгадывается, если, конечно, ключ короче сообщения или тоже текст (а не белый шум)


 
Digitman ©   (2002-01-24 17:21) [8]

так СРАВНЕНИЯ или ПРЕОБРАЗОВАНИЯ ? разные ведь вещи абсолютно ! Сравнение не меняет значения операндов, преобразование записывает в результатирующий операнд результат операции.

при выполнении строчки Result:= A XOR B ничего ни с чем не сравнивается (на уровне Паскаля), какого бы типа ни были операнды и то, куда результат выполнения записывается


 
DeCompiler   (2002-01-27 16:57) [9]

На самом деле при использовании 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-28 08:27) [10]

"На самом деле ... сравнение" происходит внутри ALU CPU на уровне микрокода. Но мы-то - о Паскале в дан.случае !


 
DeCompiler   (2002-01-28 20:43) [11]

На самом деле ;)) нам и не обязательно знать, где это сравнение происходит, факт - оно есть.
О пасе, так о пасе, но XOR - это инструкция проца и дельфа её юзает ее соответствено, на уровне асма
(на котором эта дельфа и написана). Xor в дельфе и xor в асме в принципе одно и то же, разве что в
дельфе нас не заботит содержимое и размер операндов (байты, ворды, дворды и т.д.). А процедура одинакова

mov [регистр1],[операнд1]
mov [регистр2],[операнд2]
xor [регистр1],[регистр2]

Хоть в пасе, хоть в си, хоть в фортране с азой :)) Процы Intel, они и в Африке процы Intel (только черные)
и инструкции с ними...

А вообще вопрос был: "Где мне найти в Delphi побитовое исключающее ИЛИ?"... Кажется, на него уже
ответили... Xor...



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

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

Наверх




Память: 0.49 MB
Время: 0.015 c
1-32255
Лана Розанова
2002-01-28 11:09
2002.02.11
Все добрый день


14-32332
BFG
2001-12-20 18:22
2002.02.11
Chess


3-32123
Dmitrii
2002-01-11 18:05
2002.02.11
Обновление данных в таблице Paradox при работе по локалке.


1-32244
well
2002-01-28 08:16
2002.02.11
Массивы


3-32162
Alex Y.
2002-01-15 18:38
2002.02.11
Надежность CommitRetaining