2 Değeri XOR Lama

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
meren
Üye
Mesajlar: 71
Kayıt: 20 Ara 2004 03:44

2 Değeri XOR Lama

Mesaj gönderen meren »

Merhaba arkadaşlar ufak bi kod yazıyorum
fakat bir türlü çözemedim gitti,

2 Tane karakteri CharToHex olarak Hex'e çevirdim, bu 2 HEX değerini birbirleriyle
XOR ederek sonucu ekrana yazdırmam gerekiyor bu konuda yardımcı olabilirseniz çok
sevinirim. Şimdiden herkeze teşekkürler.

Saygılarımla,
LifeTime
Üye
Mesajlar: 20
Kayıt: 09 Oca 2009 06:59

Re: 2 Değeri XOR Lama

Mesaj gönderen LifeTime »

Bu şekilde yapamazsınız. Hex'e çevrim sonucundaki gösterim string türündedir. Bu da bu şekilde XOR lanamaz. Ancak Bu iki karakterin sayısal değerlerini XOR layıp sonucuda ister Hex, ister Decimal olarak gösterebilirsiniz. Zaten, Hexadecimal de olsa Decimal de olsa hatta Octal da olsa sayıların XOR lanmasıyla oluşan sonuç matematiksel değer olarak aynıdır.

Ancak şunu yapabilirsin... Malum delphide HEX sayılar başına "$" işareti konarak kullanılabiliyor. Yani; "Sayi := $4A" gibi.. Buradan yola çıkarak şöyle yapabiliriz.

var s1,s2: string;
xn, n1,n2: integer;

begin
s1 := '1C'; // rastegele seçilmiş/hex 'e çevrilmiş bir sayı ...
s2 := '2B'; // rastegele seçilmiş/hex 'e çevrilmiş ikinci bir sayı ...

s1 := '$' + s1; // Başına $ işareti ekliyoruz ki sayıya çevirebilelim
s2 := '$' + s2; // ..::::::::::..

n1 := StrToint(s1); // bu işlem sonunda hex olan, s1'in değeri n1'e sayı (decimal) olarak atanır.
n2 := StrToint(s2);

xn := n1 xor n2; // bir zamanlar hex olan iki sayı bu şekilde XOR 'lanabilir.

showMessage(intTostr(xn));
showMessage(intTohex(xn,2)); // yada bunun sonucunu hex olarak ta gösterebilirsin.

end;
Cevapla