نمایش نتایج 1 تا 10 از 10

نام تاپیک: احتیاج به الگوریتم تبدیل اعداد به مبنای دو

  1. #1

    احتیاج به الگوریتم تبدیل اعداد به مبنای دو

    سلام..من یه الگوریتم احتیاج دارم برای تبدیل اعداد به مبنای 2 ...
    هر چی فکر میکنم چیزی به ذهنم نمیرسه

  2. #2
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    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

  3. #3
    عزیز دلم.....من اینو میدون...
    اینکه یه برنامه بنویسیم..که وقتی بهش یه عدد میدید...نبدیل شده اونو برگردونه شرطه!!!

  4. #4
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    ن یه الگوریتم احتیاج دارم برای تبدیل اعداد به مبنای 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

  5. #5
    عزیز دلم..
    من که احتیاجی ندارم..سر کلاس استاد از ما خواست....که یه برنامه بنویسیم برای تبدیل اعداد به صورت مبنای 2 ...همین..
    ممنون الگوریتم رو میدونم...اما برای تبدیلش به یه برنامه اشکال دارم

  6. #6
    سلام
    ایضا به این روش هم می شه بدون نیاز به برگردوندن:

    #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 قابل تبدیل اند.
    بیا ای خسته خاطر دوست ! ای مانند من دلکنده و غمگین
    من اینجا بس دلم تنگ است
    بیا ره توشه برداریم
    قدم در راه بی فرجام بگذاریم


  7. #7
    سلام
    آقا این خط برای چی است (s+=l*m)
    شما یک بار تو حلقه مقدار s را بدست اوردی پس s خارج حلقه برای چی است ؟

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

  9. #9

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

    سلام
    من به همین برنامه احتیاج دارم اما به صورت بازگشتی می تونید کمکم کنید؟

  10. #10
    کاربر جدید آواتار Hamed Hosseini
    تاریخ عضویت
    مهر 1387
    محل زندگی
    رشت
    سن
    31
    پست
    24

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

    يه راهنمايي اينكه از يه حلق استفاده كن ، شرطشم بزار تا زماني كه خارج قسمت كوچكتر از 2 بشه. انشااله كه حالا مي توني بنويسي؟

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •