check home phone-call search send

سورس کد تبدیل مبنای دو به ده

همیشه در سایت سعی کردیم سورس کد پروژه و برنامه بذاریم طوری که کاربران از این سورس کد ها در جهت یادگیری و آموزش برنامه نویسی استفاده کنند. در این پست سورس کد تبدیل مبنای دو به ده و ده به دو در زبان سی پلاس پلاس رو آماده کردیم. خیلی از کاربران در زمینه تبدیل مبنای دو به ده سوال های زیادی پرسیده بودند. شما با دیدن این سورس کد و یادگیری الگوریتم این برنامه به راحتی در زبان های برنامه نویسی دیگر این تبدیل مبنای دو به ده رو میتوانید برنامه نویسی کنید. معمولا این تبدیل مبنای دو به ده به صورت سوال : برنامه ای بنویسید که عدد باینری(مبنای 2) را بگیرد به مبنای 10 تبدیل کند و عدد دسیمال(مبنای 10) را بگیرد به مبنای 2 تبدیل کند پرسیده میشود.

سورس کد تبدیل مبنای دو به ده

توضیحی در مورد این سورس کد و برنامه بدم ، این برنامه دو تابع به نام های binary و decimal دارد که تابع اول عدد دهدهی(دسیمال) را از ورودی میگیرد و به دودویی تبدیل میکند و تابع دوم نیز بر عکس تابع اولی عمل میکند،یعنی عدد دودویی را میگیرد و به دهدهی تبدیل میکند.

نکته هایی در مورد سورس تبدیل مبنای دو به ده و مبنای ده به دو :

  • هر دو تابع از نوع void تعریف شده اند که این یعنی هیچ یک از توابع مقداری را بازنمیگردانند.
  • اگر کاربر در منوی اصلی عدد 3 را وارد کند،تابع (exit(0 باعث خروج از برنامه میشود.

سورس کد تبدیل مبنای دو به ده و ده به دو

#include<iostream>
#include<conio.h>
using namespace std;
void binary(void);
void decimal(void);
main()
{
      int select;
      while(1)
      {
              system("cls");
      cout<<"1.conver 2 to 10"<<"\n\n";
      cout<<"2.convert 10 to 2"<<"\n\n";
      cout<<"3.exit"<<"\n\n";
      cout<<"Enter your selection:";
      cin>>select;
      switch(select)
      {
                    case 1:binary();break;
                    case 2:decimal();break;
                    case 3:exit(0);
                    default:break;
                    }//end of switch
                    }//end of while
      return 0;
      }
      
//**********
void binary(void)
{
     system("cls");
    int counter=0,i,n;
    cout<<"Enter a decimal number:";
    cin>>n;
    int* a;
    a=new int[n];
    while(n>0)
    {
              a[counter]=n%2;
              n/=2;
              counter++;
              }
    counter--;
    cout<<"\n\n"<<"binary=";
    for(i=counter;i>=0;i--)
    cout<<a[i];
    cout<<"\n\n"<<"press a key to back to menu...";
    getch();
}
 
//**********
void decimal()
{
system("cls");
long int n,sum = 0,r,i=1;;
    cout<<"Enter a binary number:";
    cin >> n;
    while (n!=0) {
          r=n%10;
        sum += r*i;
        i*=2;
        n/=10;
    }
    cout <<"\n\n"<<"decimal="<<sum;
    cout<<"\n\n"<<"press a key to back to menu...";
    getch();
}
 
//>   sourceiran.com
Avatar
پشتیبان سورس ایران 2180 مطلب منتشر شده

در مجموعه سورس ایران سعی می کنیم علاوه بر آموزش برنامه نویسی، به مسائل مرتبط و مهارت های نرم بپردازیم تا بعدهای مختلف را پوشش دهیم.

دیدگاه کاربران

تعداد دیدگاه های کاربران : 3 دیدگاه
Avatar
ابوالفضل abolfazl
پاسخ دهید

سلام باید بعد از خروجی هر تابع اینو بزاری وگرنه خروجی رو نشون نمیده

system(“PAUSE”);

Avatar
محمد
پاسخ دهید

برای تبدیل باینری به دسیمال درست کار نمیکنه فقط تا 2559 رو ساپورت میکنه

Avatar
HK
پاسخ دهید

در خط 36 از newاستفاده شده
اما بعدا delete نشده


شما با موفقیت در خبرنامه ما عضو شدید