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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
1-32241
MAN-IN-RED
2002-01-27 23:11
2002.02.11
Вопрос есть! Попытка номер 2.


4-32373
ikar
2001-12-13 12:31
2002.02.11
Необходимо скопировать текст выделенный в любом другом приложении.


1-32297
Abajun
2002-01-28 13:39
2002.02.11
Обработка исключительных ситуаций


3-32166
ГС ТОФ
2002-01-16 14:38
2002.02.11
Пропала форма в проекте


6-32301
Денис
2001-10-15 13:19
2002.02.11
Проблема с MAPI, письмо не отправляется.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский