الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن تحويل عدد صحيح الى Binary

مغلق
بدأه MohdRabee في 28 أغسطس 2004 · 7 رد · 1,887 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

هل يوجد طريقة لتحويل عدد صحيح الى Binary

مثال تحويل رقم 100 إلى 1100100

ولكم جزيل الشكر

محمد ربيع

#2

الطريقة الرياضية هي كالتالي

لنفرض أننا نريد تحويل العدد x إلى النظام الثنائي ونضعه مثلا في متحول y

*إذا كان x زوجي نضيف صفر على يسار Y وإلا نضيف واحد على يسار y أيضا

*ثم نقسم x على 2 (قسمة دون باقِ)

نكرر الخطوتين السابقتين حتى يصبح x=0

وهذا هو الكود في دلفي (طبعا القيمة المعادة هي سلسلة نصية تجنبا لطول الأرقام الثنائية )

function inttobin(val:integer):string;
var s:string;
begin
s:='';
while val<>0 do
begin
s:=inttostr(val mod 2)+s;
val:=val div 2;
end;
result:=s;
end;
#3

ممكن أخي eiadkasem1982

تخبرني عن

HexToBin

BinToHex

الموجوده في ( Classes)

يوجد غيرها أيضا وكأنها تحويل لشيئ في (SysUtils)

ماهي وطريقة استخدامها

إذا أمكن للفائده فقط

""""""""""""""""""""""""""

ماأريد الوصول له

عندما أقوم بعمل hex بإحدى البرامج مثلا Hex Workshop

لواحد من برامجي التى قمت بتصميمها

أجد البيانات من نوع string في مشروعي مكشوفه وتظهر كامله في البرنامجHex Workshop

ويمكن تغييرها والتعديل عليها

!!!!!!!!

لماذا ومالحل

وشكرا

محمـــــــــد

المملكه العربيه السعوديـــه

[الفريق العربي للبرمجه الأفضـل دائما]

/

::::::::::::::::::::::::::::::::::::

msvbvm60.dll = فيجوال بيسك

.................= دلفــــــــــــــي

::::::::::::::::::::::::::::::::::::

#4

أشكرك أخي الكريم eiadkasem

هل يمكنك ذكر الطريقة التي يتم فيها التحويل بالعكس

من Binary To Decimal

جزاك الله كل خير

وتقبل أطيب التحيات

محمد ربيع

#5

الطريقة الحسابية وليست البرمجية:

total=2^0*1st bit+2^1*2nd bit+2^3*3rd bit+...+2^(n-1)*nth bit

حيث n هي رقم الخانة الاخيرة MSB للرقم الثنائي، 1st BIT هي الخانة الاولى للرقم الثنائى من اليمين LSB.

تم تعديل هذه المشاركة بواسطة عماد الخليل في 31 أغسطس 2004 في 22:15

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#6

بالنسبة للتحويل من ثنائي إلى عشري فالطريقة تماما كما ذكرها الأخ عماد مشكورا

أي أن العدد العشري المقابل لعدد ثنائي هو مجموع خاناتالعدد الثنائي بعد ضرب كل خانة بالرقم 2 مرفوعاً إلى قوة هي رقم هذه الخانة (على اعتبار ترقيم الخانات يبدأ من الصفر ومن اليمين)

مثلاً

100
0*1+0*2+1*4
كذلك
1010
0*1+1*2+0*4+1*8

وهذا هو الكود في دلفي(كتبته مباشرة ولم أجربه )

function bintodec(buf:string):integer;
var i,
    rank:integer;
begin
result:=0;
rank:=1;
for i:=length(buf)downto 1 do
begin
if buf='1' then
result:=result+rank;
rank:=rank*2;
end;
end;

طبعا نمرر للتابع السابق متحول نصي واحدات وأصفار (يدل على الرقم الثنائي المطلوب مع ملاحظة أنه عند وجود محارف غير الصفر والواحد سيتم اعتبارها أصفار)

وبالنسبة ل hextobin و bintohex لم أجربهما قبلاً ولم أتمكن من معرفة عملهما ...!!!

اما مشكلة ظهور السلاسل النصية كما هي عند تحرير الملف التنفيذي بمحرر ست عشري فهي مشكلة لا أعرف حلاً سهلا لها ولكني عادةً أقوم بتشفير النص المطلوب (عن طريق خوارزمية تشفير بسيطة صممتها) ثم أضع النص المشفر في متحول نصي ضمن كود البرنامج وأقوم بتضمين خوارزمية فك التشفير ضمن البرنامج

وفي حدث إنشاء الفورم (oncreate) أقوم بفك تشفير النص الموجود في المتحول النصي السابق وأضعه في مكانه المناسب ...

#7

السلام عليكم

اشكر الاخوة eiadkasem و عماد على هذه الردود

وجزاكم الله كل خير

محمد ربيع

#8

السلام عليكم ورحمة الله وبركاته

مشكلة ظهور النصوص فى Hex mode مشكلة لكل لغات البرمجة وليس شئ خاص بالدلفى

وعندى حل ارجو ان يكون مفيد ولكنه ليس نهائى ولا قوى قدر المطلوب وانا مجربه بنفسى

شوف حبيب قلبى بعد عمل برنامجك يجب تشفيره باحد برامج التشفير التى تعرفها ولا تخفى عليك كالUPX مثلا وهو حل فعال ويقوم ايضا بضغط حجم البرنامج اى تقليل حجمه

upx125w.zip

تم تعديل هذه المشاركة بواسطة JuStNiCk في 3 سبتمبر 2004 في 15:09

{ربى زدنى علما}

هذا الموضوع مغلق.

مواضيع مشابهة