PDA

View Full Version : احتیاج به الگوریتم تبدیل اعداد به مبنای دو



white fox
پنج شنبه 05 خرداد 1384, 16:38 عصر
سلام..من یه الگوریتم احتیاج دارم برای تبدیل اعداد به مبنای 2 ...
هر چی فکر میکنم چیزی به ذهنم نمیرسه

whitehat
پنج شنبه 05 خرداد 1384, 19:25 عصر
1-تقسیم به 2 و ذخیره باقی مانده
2- خارج قسمت را با عدد عدد اصلی عوض کنید.(بار بعدی خارج قسمت باید به 2 تقسیم شود)
3-ادامه تا جاییه که خارج قسمت صفر شود.
(اعداد را باید از چپ به راست ذخیره کنید)

white fox
پنج شنبه 05 خرداد 1384, 21:39 عصر
عزیز دلم.....من اینو میدون...
اینکه یه برنامه بنویسیم..که وقتی بهش یه عدد میدید...نبدیل شده اونو برگردونه شرطه!!!

whitehat
پنج شنبه 05 خرداد 1384, 22:06 عصر
ن یه الگوریتم احتیاج دارم برای تبدیل اعداد به مبنای 2 ...

اینکه یه برنامه بنویسیم..که وقتی بهش یه عدد میدید.
امیدوارم فرق الگوریتم با برنامه را بدونی !
اعداد معمولا به صورت باینری در حافظه ذخیره می شوندمثلا اگر از یک دستور shift چپ بر روی یک عدد استفاده کنید عدد در 2 ضرب میشه.برای چی می خواهی عدد را به باینری تبدیل کنی؟(خود عدد به صورت باینری در حافظه وجود داره)
به طور کلی اگر بخواهی یک عدد را به صورت باینری نشان دهید می توانید از یک آرایه مانند یک String استفاده کنید.
موفق باشید

white fox
پنج شنبه 05 خرداد 1384, 22:20 عصر
عزیز دلم..
من که احتیاجی ندارم..سر کلاس استاد از ما خواست....که یه برنامه بنویسیم برای تبدیل اعداد به صورت مبنای 2 ...همین..
ممنون الگوریتم رو میدونم...اما برای تبدیلش به یه برنامه اشکال دارم

hosseinzadeh
جمعه 06 خرداد 1384, 12:20 عصر
سلام
ایضا به این روش هم می شه بدون نیاز به برگردوندن:


#include<stdio.h>
int main()
{
int n,m=0,q=0;
long int s=0,l=1;
printf("\nEnter decimal number");
scanf("%d",&n);
do
{
q=n/2;
m=n%2;
s+=l*m;
n=q;
l=l*10;
}
while(n>1);
s=s+n*l;
printf("%ld",s);
}

باقیمانده ی اول رو در یک ضرب می کنیم دومی را در 10 سومی در 100 و .... و مقادیر را به یک متغیر مانند s اضافه می کنیم.
البته این روش اشکالاتی هم داره:
برای اعداد بزرگ به انواع عددی بزرگ نیاز هست.با int اعداد تا 31 ، با long int اعداد تا 1023 و با double اعداد تا 32767 قابل تبدیل اند.

aghaghi
چهارشنبه 12 مرداد 1384, 18:22 عصر
سلام
آقا این خط برای چی است (s+=l*m)
شما یک بار تو حلقه مقدار s را بدست اوردی پس s خارج حلقه برای چی است ؟

seyedof
پنج شنبه 13 مرداد 1384, 13:29 عصر
سلام
این عادت بد ! ارسال تمرینها و پروژه های دانشجویی هنوز تو این سایت برطرف نشده. چه اوونهایی که تمرینهای درسیشون رو اینجا مطرح میکنند چه اوونها که جواب میدن !
ضمنا قصد هم رفع اشکال و یادگیری نیست ! هلو برو تو گلو است یعنی کد آماده و برنامه نوشته شده میخوان که به راحتی تحویل استاد بدن :)
حیف که الان مدیر نیستم وگرنه کل اینجور تاپیکها رو قفل میکردم.
ممنون علی

baby omade
پنج شنبه 24 اردیبهشت 1388, 21:30 عصر
سلام
من به همین برنامه احتیاج دارم اما به صورت بازگشتی می تونید کمکم کنید؟:لبخندساده:

Hamed Hosseini
جمعه 25 اردیبهشت 1388, 02:01 صبح
يه راهنمايي اينكه از يه حلق استفاده كن ، شرطشم بزار تا زماني كه خارج قسمت كوچكتر از 2 بشه. انشااله كه حالا مي توني بنويسي؟