# Native Code > برنامه نویسی با C > برنامه نویسی با MFC و ++Visual C >  در مورد تبدیل یک عدد در مبنای 10 به مبنای 2

## smemamian

سلام دوستان
  برنامه زیر یک عدد در مبنای 10 رو به مبنای 2 تبدیل میکنه *.*
دوستان می تونن مرحله به مرحله توضیح مختصری بدن *؟*

برای مثال ورودی عدد 5 می شود *:* 101
چگونه *؟*
عدد 50 استفاده شده برای چیه *؟*

در ضمن حلقه ی for استفاده شده کارش چیه *؟*

using namespace std;

void vbinary(int ivalue);

int main(int argc, char *argv[])

{
int ivalue;
cout <<"enter a number (base 10) for conversion to "
     << "binary -> " ;
     cin >> ivalue;
     vbinary(ivalue);
     
    system("PAUSE");
    return EXIT_SUCCESS;
}

void vbinary(int idata)
{
     int t = 0;
     int iyourarray[50];
     while (idata !=0){
           iyourarray[t] = (idata % 2);
           idata =idata / 2 ;
           t++;
           }
           
           
           for (--t; t>=0;t--)
           cout << iyourarray[t];
           cout << endl;
           }

----------


## omidshaman

اول این که شما همون طور که میدونی برای تبدیل از مبنا یک عدد به مبنا مثلا عدد 2 باید اون عدد رو بصورت متوالی به 2 تقسیم کرد (تا وقتی که خارج قسمت 0 بشه)و باقیمانده ها و خارج قسمت اخری میشد عدد تو مبنا2
این برنامه هم این جوری کار می کنه شما فرض کن عدد و.رودی همون 5 ایه که گفتی 5 میره داخل حلقه while خط 22 
تو خط 23 خونه اول ارایه ای که از قبل تعریف کردیم( اون 50 طول ارایست شما می تونستی 5 بزاری ولی خوب اگر عددت تو مبنا 2 بیشتر از 5 رقم میشد دیگه درست نشون نمیداد ) رو برابر باقیمانده تقسیم به 2میزاره
تو خط 24 عدد رو به 2 تقسیم می کنه و تو خط 24 میره به خونه بعدی ارایه و این کار همین جوری ادامه پیدا می کنه  تا خارج قسمت تقسیم 0 باشه
خوب حالا وقتی که برنامه از حلقه While خارج شد یک ارایه داریم که محتویاتش میشن خونه 1: باقیمانده اولین خونه2 :باقیمانده دومین خونه ... خون n :خارج قسمت اخری
که خوب حالا کافیه محتویاتن ارایه رو از اخر به اول نشون بدیم خط 29 و30
البته این برنامه رو کاملترشو قبلا برای یک نفر نوشته بودم می تونی اونو هم نگاه کنی

https://barnamenevis.org/showthread.p...D8%A8%D9%87-16

----------

