المشاركات : 2
المواضيع 1
:
: 0
الإنتساب : Sep 2011
04-04-2013, 12:05 PM
(آخر تعديل لهذه المشاركة: 04-04-2013, 01:16 PM بواسطة TF6M .)
السلام عليكم
ما هو كود الدلفي لعملية Xor اي ترجمة لى لغة الدلفى
خوارزمية الاكسور XOR ولاجرائها اد كان لدينا 2 Bits المتطابقين مختلفين 1 و 0 , النتيجة ستكون واحد 1
4B XOR 69 = XX
4B = 01001011
01101001 =69
22 = 00100010
لكي احصل على هده النتيجة
4B XOR 69 = 22
ودالك باستعمال edit3.text = edit1.tex? edit2.text
المشاركات : 306
المواضيع 45
:
: 0
الإنتساب : Jul 2012
السلام عليكم
تفضل :
PHP كود :
function sHexToInt ( Hex : String ): Integer ; begin Result := StrToInt ( Format ( '$%S' ,[ Hex ])) end ; procedure TForm1 . Button1Click ( Sender : TObject ); var num1 , num2 , num3 : Integer ; begin num1 := sHexToInt ( Edit1 . Text ); num2 := sHexToInt ( Edit2 . Text ); asm MOV eax , num1 XOR eax , num2 MOV num3 , eax end ; Edit3 . Text := IntToHex ( num3 , 0 ) end ;
السروس كود بالمرفقات
الملفات المرفقة
Example XOR.rar (الحجم : 2.63 ك ب / التحميلات : 38)
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
يمكنك استخدام المعامل XOR بشكل عادي
PHP كود :
N1 := StrToInt ( Edit1 . Text ); N2 := StrToInt ( Edit2 . Text ); NXor := N1 XOR N2 ;
المشاركات : 2
المواضيع 1
:
: 0
الإنتساب : Sep 2011
almuhhnad كتب : السروس كود بالمرفقاتاخي عندما اعطيه رقم طويل لا يحوله متل 16 رقم و حرف
المشاركات : 306
المواضيع 45
:
: 0
الإنتساب : Jul 2012
السلام عليكم ورحمة الله وبركاتة
إقتباس : اخي عندما اعطيه رقم طويل لا يحوله متل 16 رقم و حرف
نعم , وذلك يرجع لان القيمة التي ادخلتها اكبر من نوع الـ integer
ولتعامل مع قيم كبيرة نظع المتغير int64 بدلاً من integer
وهذا هو الكود :
PHP كود :
procedure TForm1 . Button1Click ( Sender : TObject ); var num1 , num2 , num3 : Int64 ; begin num1 := StrToInt64 ( Edit1 . Text ); num2 := StrToInt64 ( Edit2 . Text ); num3 := num1 xor num2 ; Edit3 . Text := IntToHex ( num3 , 0 ) end ;
وهذا نفس الكود لكن بسطر واحد
PHP كود :
procedure TForm1 . Button1Click ( Sender : TObject ); begin Edit3 . Text := IntToHex ( StrToInt64 ( Edit1 . Text ) xor StrToInt64 ( Edit2 . Text ), 0 ) end ;
والسلام عليكم
المشاركات : 73
المواضيع 27
:
: 6
الإنتساب : Dec 2012
اخي الكريم هذا الكود لم يعمل معي يعمل مع الاعداد فقط ولا يتعامل مع الحروف ممكن تعديل عليه
وبارك الله فيك
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
salah07230 كتب :
الكود لم يعمل معي يعمل مع الاعداد فقطولا يتعامل مع الحروف ممكن تعديل عليه
يجب تحويل الحروف الى بايتات ثم اجراء عملية ال xor :
PHP كود :
function XorStr ( A , B : string ): string ; var LA , LB , i , j : integer ; cAB , cBB , cR : Byte ; begin LA := length ( A ); LB := length ( B ); Result := '' ; if ( LA > 0 ) and ( LB > 0 ) and ( LA = LB ) then begin SetLength ( Result , LA ); for i := 1 to LA do begin cAB := Ord ( A [ i ]); cBB := Ord ( B [ i ]); cR := cAB xor cBB ; if cR <> 0 then Result [ i ] := char ( cR ); end ; end ; end ; procedure TForm3 . Button1Click ( Sender : TObject ); begin Caption := XorStr ( 'Delphi' , 'CSharp' ); end ;
Open Your Source .. Open Your Mind
المشاركات : 73
المواضيع 27
:
: 6
الإنتساب : Dec 2012
السلام عليكم
اخي الكريم شكرا لك على ردك
ولكني لم استطع تطبيق الدالة ممكن التعديل على المرفق
الملفات المرفقة
XOR.rar (الحجم : 3.03 ك ب / التحميلات : 17)
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
المشكلة أنك تملك قيم بالهكس أخي في ال Edit
و أنت استخدمت strtoint64 لتحويل القيمة النصية الى عدد ..
لكن لم تحدد ان كان العدد هكس
PHP كود :
num1 := strtoint64 ( Edit1 . text ); num2 := strtoint64 ( Edit2 . text );
الأصح أن تكتب :
PHP كود :
num1 := strtoint64 ( '$' + Edit1 . text ); num2 := strtoint64 ( '$' + Edit2 . text );
Open Your Source .. Open Your Mind
المشاركات : 73
المواضيع 27
:
: 6
الإنتساب : Dec 2012
بارك الله فيك وجزاك خيرا
النتيجة كما يلي:
21BC350E xor 07 = 26BB3209