سلام..من یه الگوریتم احتیاج دارم برای تبدیل اعداد به مبنای 2 ...
هر چی فکر میکنم چیزی به ذهنم نمیرسه
سلام..من یه الگوریتم احتیاج دارم برای تبدیل اعداد به مبنای 2 ...
هر چی فکر میکنم چیزی به ذهنم نمیرسه
1-تقسیم به 2 و ذخیره باقی مانده
2- خارج قسمت را با عدد عدد اصلی عوض کنید.(بار بعدی خارج قسمت باید به 2 تقسیم شود)
3-ادامه تا جاییه که خارج قسمت صفر شود.
(اعداد را باید از چپ به راست ذخیره کنید)
To follow the path:
Look to the master
Follow the master
Walk with the master
See through the master
Become the master
عزیز دلم.....من اینو میدون...
اینکه یه برنامه بنویسیم..که وقتی بهش یه عدد میدید...نبدیل شده اونو برگردونه شرطه!!!
ن یه الگوریتم احتیاج دارم برای تبدیل اعداد به مبنای 2 ...امیدوارم فرق الگوریتم با برنامه را بدونی !اینکه یه برنامه بنویسیم..که وقتی بهش یه عدد میدید.
اعداد معمولا به صورت باینری در حافظه ذخیره می شوندمثلا اگر از یک دستور shift چپ بر روی یک عدد استفاده کنید عدد در 2 ضرب میشه.برای چی می خواهی عدد را به باینری تبدیل کنی؟(خود عدد به صورت باینری در حافظه وجود داره)
به طور کلی اگر بخواهی یک عدد را به صورت باینری نشان دهید می توانید از یک آرایه مانند یک String استفاده کنید.
موفق باشید
To follow the path:
Look to the master
Follow the master
Walk with the master
See through the master
Become the master
عزیز دلم..
من که احتیاجی ندارم..سر کلاس استاد از ما خواست....که یه برنامه بنویسیم برای تبدیل اعداد به صورت مبنای 2 ...همین..
ممنون الگوریتم رو میدونم...اما برای تبدیلش به یه برنامه اشکال دارم
سلام
ایضا به این روش هم می شه بدون نیاز به برگردوندن:
#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 قابل تبدیل اند.
بیا ای خسته خاطر دوست ! ای مانند من دلکنده و غمگین
من اینجا بس دلم تنگ است
بیا ره توشه برداریم
قدم در راه بی فرجام بگذاریم
سلام
آقا این خط برای چی است (s+=l*m)
شما یک بار تو حلقه مقدار s را بدست اوردی پس s خارج حلقه برای چی است ؟
سلام
این عادت بد ! ارسال تمرینها و پروژه های دانشجویی هنوز تو این سایت برطرف نشده. چه اوونهایی که تمرینهای درسیشون رو اینجا مطرح میکنند چه اوونها که جواب میدن !
ضمنا قصد هم رفع اشکال و یادگیری نیست ! هلو برو تو گلو است یعنی کد آماده و برنامه نوشته شده میخوان که به راحتی تحویل استاد بدن :)
حیف که الان مدیر نیستم وگرنه کل اینجور تاپیکها رو قفل میکردم.
ممنون علی
سلام
من به همین برنامه احتیاج دارم اما به صورت بازگشتی می تونید کمکم کنید؟
يه راهنمايي اينكه از يه حلق استفاده كن ، شرطشم بزار تا زماني كه خارج قسمت كوچكتر از 2 بشه. انشااله كه حالا مي توني بنويسي؟