![]() |
|
كيف تحويل 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 وهو المراد الوصول له بعد التحويل .... ساكمل فيما بعد |