همیشه در سایت سعی کردیم سورس کد پروژه و برنامه بذاریم طوری که کاربران از این سورس کد ها در جهت یادگیری و آموزش برنامه نویسی استفاده کنند. در این پست سورس کد تبدیل مبنای دو به ده و ده به دو در زبان سی پلاس پلاس رو آماده کردیم. خیلی از کاربران در زمینه تبدیل مبنای دو به ده سوال های زیادی پرسیده بودند. شما با دیدن این سورس کد و یادگیری الگوریتم این برنامه به راحتی در زبان های برنامه نویسی دیگر این تبدیل مبنای دو به ده رو میتوانید برنامه نویسی کنید. معمولا این تبدیل مبنای دو به ده به صورت سوال : برنامه ای بنویسید که عدد باینری(مبنای 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
دیدگاه کاربران
تعداد دیدگاه های کاربران : 3 دیدگاهسلام باید بعد از خروجی هر تابع اینو بزاری وگرنه خروجی رو نشون نمیده
system(“PAUSE”);
برای تبدیل باینری به دسیمال درست کار نمیکنه فقط تا 2559 رو ساپورت میکنه
در خط 36 از newاستفاده شده
اما بعدا delete نشده