برنامه تبدیل مبناها به یکدیگر در C++
#include
#include
#include
//------------sourcea.ir----------------------------------//
char MyChar(long int num)
{
char a;
if (num <= 9 && num >= 0) a = num + 48;
else if (num == 10) a = 'A';
else if (num == 11) a = 'B';
else if (num == 12) a = 'C';
else if (num == 13) a = 'D';
else if (num == 14) a = 'E';
else if (num == 15) a = 'F';
return a;
}
//----------------------------------------------//
long int Myflag(long int mabna ,char num[])
{
long int i = 0 , counter = 0;
long int mynum;
long int flag = 1;
for ( i =0 ; num[i] != '\0' ; i++)
{
if (num[i] >=48 && num[i] <=57) mynum = num[i]-48 ;
else if (num[i] == 'A' || num[i] == 'a') mynum = 10;
else if (num[i] == 'B' || num[i] == 'b') mynum = 11;
else if (num[i] == 'C' || num[i] == 'c') mynum = 12;
else if (num[i] == 'D' || num[i] == 'd') mynum = 13;
else if (num[i] == 'E' || num[i] == 'e') mynum = 14;
else if (num[i] == 'F' || num[i] == 'f') mynum = 15;
if (mynum >= mabna) flag = 0;
}
return flag;
}
//----------------------------------------------//
long int Myten(long int mabna , char num[])
{
long int i = 0 , count = 0 , counter = 0;
long int ten = 0;
long int mynum;
for (i = 0 ; num[i] != '\0' ; i++ ) counter++;
counter--;
for ( i = counter ; i >=0 ; i--)
{
if (num[i] >=48 && num[i] <=57) mynum = num[i]-48 ;
else if (num[i] == 'A' || num[i] == 'a') mynum = 10;
else if (num[i] == 'B' || num[i] == 'b') mynum = 11;
else if (num[i] == 'C' || num[i] == 'c') mynum = 12;
else if (num[i] == 'D' || num[i] == 'd') mynum = 13;
else if (num[i] == 'E' || num[i] == 'e') mynum = 14;
else if (num[i] == 'F' || num[i] == 'f') mynum = 15;
ten =ten +(mynum * pow(mabna , count));
count++;
}
return ten;
}
//----------------------------------------------//
int main()
{
clrscr();
long int mabna1 , mabna2 , count = 0 , ten , i , mod;
char all[100] , number , num[100];
cout << "Please Enter The Input Base= ";
cin >> mabna1;
cout << "Please Enter The Number= ";
cin >> all;
if (!Myflag (mabna1 , all))
{
cout << "\nThe Number Does Not Math With The Input Base";
}
else
{
cout << "Please Enter The Output Base= ";
cin >> mabna2;
ten = Myten (mabna1 , all);
mod = ten % mabna2;
num[0] = MyChar(mod);
while (ten >= mabna2)
{
ten /= mabna2;
mod = ten % mabna2;
count++;
num[count] = MyChar(mod);
}
for (i = count ; i >= 0 ; i--)
{
cout << num[i];
}
}
getch();
return 0;
}
توضیحات:
صورت سوال:
برنامه تبدیل مبناها به یکدیگر در C++
این برنامه از شما عدد را همراه با مبنای اول میگیرد و به مبنایی که می دهید میبرد و چاپ میکند.
شما میتوانید سوالات خود را از طریق ایمیل پشتیبانی (INFO[at]SOURCEA[.]IR) یا در قسمت نظرات سوال خود را بپرسید.
موفق باشید
A.J
پست های مرتبط:
نحوه استفاده از تابع های دوگانه (inline functions) در C++
توابع دوگانه یا inline functions در C++ به صورت کوتاه و مفید تعریف میشوند و برای اجرای سریعتر کد استفاده میشوند…
تفاوت بین عبارت auto و decltype در C++
هر دو برای تعیین نوع متغیرها استفاده میشوند، اما دارای کاربردها و عملکردهای متفاوتی هستند…
نحوه استفاده از توابع متغیر در C++
در C++، شما میتوانید از توابع متغیر (inline functions) برای تعریف توابع کوچک و ساده استفاده کنید…
نحوه استفاده از جداول در C++
در C++، شما میتوانید از آرایهها برای ایجاد جداول استفاده کنید. یک جدول در C++ مانند یک آرایه چند بعدی…
نحوه استفاده از شورت کاتینگ در C++
شورت کاتینگ یک تکنیک بهینه سازی است که به کمک آن میتوانید عملیات های محاسباتی را بهینه تر انجام دهید…
نحوه استفاده از پوینتر ها در C++
در زبان برنامهنویسی C++، پوینترها یکی از ابزارهای مهم برای مدیریت حافظه و ارجاع به آدرسهای حافظه هستند. با استفاده از پوینترها، میتوانید به طور مستقیم به حافظه دسترسی پیدا کنید و اطلاعات را در آن ذخیره و با آن کار کنید.