delphi4arab منتديات دلفي للعرب
كيف تحويل string الى binary - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف تحويل string الى binary (/showthread.php?tid=7746)



كيف تحويل string الى binary - italianjob - 20-04-2016

السلام عليك:
عندي دالة تحويل string الى binary لكن لم اعرف بالضبط الخطوات التي تقوم بها
كود :
function StrToStrBin(const S: string): string; var pOutput : pChar; pInput : ^byte; N, LenInput : integer; const AtBin : array[boolean] of char = '01'; begin LenInput := Length(S); SetLength(Result, LenInput shl 3); pInput := @S[1]; pOutput := pChar(result); for N := 1 to LenInput do begin pOutput[0] := AtBin[(pInput^ and $80) = $80]; pOutput[1] := AtBin[(pInput^ and $40) = $40]; pOutput[2] := AtBin[(pInput^ and $20) = $20]; pOutput[3] := AtBin[(pInput^ and $10) = $10]; pOutput[4] := AtBin[(pInput^ and $08) = $08]; pOutput[5] := AtBin[(pInput^ and $04) = $04]; pOutput[6] := AtBin[(pInput^ and $02) = $02]; pOutput[7] := AtBin[(pInput^ and $01) = $01]; inc(pOutput,8); inc(pInput); end;



RE: كيف تحويل string الى binary - محمد عبد العزيز - 20-04-2016

كود :
Caption:=StrToStrBin('C0DE');



RE: كيف تحويل string الى binary - italianjob - 20-04-2016

اخي اود معرفة خطوات تشغيل الدالة

كيف تقوم بالتحويل و ليس كيفية كتابتها او توظيفها


RE: كيف تحويل string الى binary - محمد عبد العزيز - 20-04-2016

باختصار يخذ حرف من السلسلة النصية وكل مرة بقارنه بالBit الذي في الوضع الثامن فان وجده متساوي يضع 1 وإلا يضع 0 ويكرر من الBit الثامن الى الاول
ثم يكرر العملية مع كل حرف من حروف السلسلة النصية String
ما الذي لم تفهمه بالكود اشرح لك
فقط لا تقل لي لم افهم شيئ



RE: كيف تحويل string الى binary - italianjob - 29-04-2016

اخي عبد العزيز أي bit يقارنه به


RE: كيف تحويل string الى binary - محمد عبد العزيز - 29-04-2016

(29-04-2016, 10:49 AM)italianjob كتب : أي bit يقارنه به
حسنا ساحاول ان اشرح ولك ان تستفسر عما لم لفهم
الbyte يتكون من 8 bits تكون اما صفر او 1 من هذا الشكل
00000000
11111111
01010101

ننطلق من اكبر عدد اي الخانة التي في اليسار لو كان واحد والبقية صفر ستكون بهذا الشكل
10000000
هذا هو العدد 128 ونكتبه في النظام ذو الاساس 16 الهكس هكذا 80 في دلفي نظيف $ جهة اليسار دائما

نخذ حرف من السلسلة النصية ونقارن قيمته مع $80
أي نقارن مع 10000000
ان كان غير متساويا النتيجة تكون 0 وان كان العكس تكون 1
طبعا المقارنة هنا غير مباشرة، فهو يقوم باستخدام التعليمة AND التي تعمل على مستوى البت لنخذ مثال
النص المدخل C0DE
اول حرف هو C قيمته 67 بالنظام العشري و43 بالهكس اما بالنظام الثنائي 01000011 وهو المراد الوصول له بعد التحويل
.... ساكمل فيما بعد