السلام عليكم ورحمة الله وبركاته
إخواني طلب مني برنامج يحول اي رقم عشري الى رقم ثنائي
ولكن المطلوب ان لا تكون على الـ Array
حاولت ولكن لم تصلح معي الا عن طريق الـ Array
وشاكرة حسن تعاونكم
السلام عليكم ورحمة الله وبركاته
إخواني طلب مني برنامج يحول اي رقم عشري الى رقم ثنائي
ولكن المطلوب ان لا تكون على الـ Array
حاولت ولكن لم تصلح معي الا عن طريق الـ Array
وشاكرة حسن تعاونكم
إستعملي الطريقة Integer.toBinaryString
المرجو اختيار عنوان مناسب لمحتوى الموضوع في المرة القادمة
خوارزمية التحويل إلى رقم ثنائي بسيطة وتعتمد على التقسيم المتتالي على 2 والتخزين في مصفوفة، وهي تابع جاهز في أغلب أو كل لغات البرمجة. التابع Integer.toBinaryString(i); في لغة Java (لغتي المفضلة)
هذا هو ال source code من JDK:
public static String toBinaryString(int i) {لا يهم لكنه لتوضيح الفكرة.
ولكن كون المطلوب أنه لا يجب استخدام مصفوفة يمكن أن نستعمل طريقة تمثيل الأرقام العشرية المعروفة (ربما)
مثلاً:
4321=1+2*10+3*100+4*1000
أي في كل مرة نأخذ باقي القسمة على ،2 نضرب ب 10 مرفوعة لأس الخطوة الحالية...
سأوضح من خلال مثال:
6 في العشري تقابل 110 في الثنائي.
res=0
exp=0
x=6
1)
y=6%2(y=0)
res=res+y*10^exp(res=0+0*10^0=0)
x=x/2
exp++
2)
y=3%2(y=1)
res=res+y*10^exp(res=0+1*10^1=10)
x=x/2
exp++
3)
y=1%2(y=1)
res=res+y*10^exp(res=10+1*10^2=110)
x=x/2
x=0 STOP
أرجو أن يكون الحل صحيحاً
تم تعديل هذه المشاركة بواسطة JDurrah في 23 مارس 2010 في 02:56
هذه مجرد تجربة فكرة وجربتها بالسي ++
ولكن الناتج من اليمين لليسار . وذلك بطباعة باقي القسمة مباشرة . دون حفظ القيم .
int d=1234;
int r=d,rem;
do{
rem=r%2;
r=r/2;
cout<<rem;
}while(r>1);
if (r==1)
cout<<r;
cout<<"\n NOTE: Resault from right to left";تحياتي
OMANI FOR EVER
-------------------------------------------------

-------------------------------------------------
الأخ الكريم/الأخت الكريمة
السلام عليكم ورحمة الله وبركاته.
مرحباً بكم في منتدى الفريق العربي للبرمجة
تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة طلب حل الواجبات والتمارين.
قواعد طرح المشاركات
شاكرين لكم حُسن تعاونكم
هذا الموضوع مغلق.