آخرین مطالب : 
شما کاربر میهمان سایت حکیم هستید. (ورود/عضویت)

تبدیل مبنا+کد برنامه


7118 بازدید
C+Programming-sttu.ir

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

میدانید که در کامپیوتر به اعداد صفر یا یک ، یک بیت میگویند.هر هشت بیت که کنار هم قرار گیرند ،تشکیل یک بایت را میدهند و ایم هشت بیت ویا به عبارت دیگر یک بایت میتواند بیانگر یک کاراکتر در صفحه کلید باشد.همچنین میدانید که هریگ کیلو بایت  معادل ۲ بهتوان ۱۰ بایت،هر یک مگابایت معادل ۲ به توان ۲۰ بایت،هر یک گیگابایت معادل ۲به توان ۳۰ و هر یک ترابایت معادل ۲ به توان ۴۰ بایت است.پس ۸مگابایت معادل ۲ضرب در ۲به توان ۲۳ بایت است.بگذریم…

نکته۱: هر عدد در یک مبنا را میتوان به مبناهای دیگر تبدیل کرد.

نکته۲:اعداد معمولی که ما استفاده میکنیم ،درمبنای ۱۰ هستند که برای سادگی آنرا نمینویسیم.

برای تبدیل  عدد n از مبنای ۱۰ به مبنای r ، کافیست  عدد n را مکرر به r تقسیم  کنیم تا زمانی که خارج قسمت صفر شود.به مثال زیر دقت کنید:

خوشتون اومد؟؟!!!

واسه تبدیل مبنای ۱۰ به مبناهای دیگر هم روش همین است.یعنی مثلا برای تبدیل ۵۴ به مبنای ۸ باید بر ۸ تقسیم را تکرار کنید.

حالا!!!!  قصد داریم برنامه روش را بنویسیم.خب من نوشتم و برای شما قرار میدهم.ابتدا برنامه ساده آنرا قرار میدهم:

#include<stdio.h> //PROGRAMER :MOHAMMAD REZA IMAN  :EHSANIMAN68@GMAIL.COM                                                                                                        //PROGRAMER :MOHAMMAD REZA IMAN  :EHSANIMAN68@GMAIL.COM
#include<conio.h>
int mabna(int n)
{
 
 
    int A[10],i;
    for(i=0;n!=0;i++)
    {
        A[i]=n%2;
        n=n/2;
    }
      for(i=i-1;i>=0;i--)
    {
        printf("%d",A[i]);
    }
 
 
}
int main()
{
    mabna(41);
 
}
 
 
//PROGRAMER :MOHAMMAD REZA IMAN  :EHSANIMAN68@GMAIL.COM
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/***************************************************************************************************************************************************
 
 
 
  EHSAN            MOHAMMAD               MOHAMMAD                    REZA                  EHSANIMAN68 @gmail.com
---------        ------------           ------------              ------------              -----------   --------
---------        ------------           ------------              ------------              -----------   --------
   ---             ----  ----           ----  ----                -----  -----                ----  ----    ----
   ---             ----   ----         ----   ----               -----    -----               ----   ----   ----
   ---             ----    ----       ----    ----              ----------------              ----    ----  ----
   ---             ----     ----     ----     ----             ------------------             ----     ---- ----
   ---             ----      ----   ----      ----            -----          -----            ----      --- ----
---------        --------     --------      --------        --------        --------        --------     -------
---------        --------     ---------     --------       ---------        ---------       --------     -------------WWW.YOURSITE.ROZBLOG.COM-------
 
/*************************************************************************************************************SmS: 10005792136152***********/

 

برنامه ای که نوشتم خیلی ساده هست و نیازی به توضیح ندارد.اما اگر نیاز به توضیح داشتید ،کافیست در قسمت نظرات بپرسید.

اما…اما…   معما !!!

حالا یک برنامه دیگر برای همین سوال ۱۳ بالا  اما این بار به روش بازگشتی !!! برای حرفه ای ها :

#include<stdio.h>                                                                                                                                                                                                                                                       //PROGRAMER :MOHAMMAD REZA IMAN  :EHSANIMAN68@GMAIL.COM
#include<conio.h>
void mabna(int n)
{if(n==0) printf("");
else {
mabna(n/2);
 
printf("%d",n%2);
}
}
int main()
{
    mabna(41);
 
}
 
//PROGRAMER :MOHAMMAD REZA IMAN  :EHSANIMAN68@GMAIL.COM
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/***************************************************************************************************************************************************
 
 
 
  EHSAN            MOHAMMAD               MOHAMMAD                    REZA                  EHSANIMAN68 @gmail.com
---------        ------------           ------------              ------------              -----------   --------
---------        ------------           ------------              ------------              -----------   --------
   ---             ----  ----           ----  ----                -----  -----                ----  ----    ----
   ---             ----   ----         ----   ----               -----    -----               ----   ----   ----
   ---             ----    ----       ----    ----              ----------------              ----    ----  ----
   ---             ----     ----     ----     ----             ------------------             ----     ---- ----
   ---             ----      ----   ----      ----            -----          -----            ----      --- ----
---------        --------     --------      --------        --------        --------        --------     -------
---------        --------     ---------     --------       ---------        ---------       --------     -------------WWW.YOURSITE.ROZBLOG.COM-------
 
/*************************************************************************************************************SmS: 10005792136152***********/

امیدوارم خوشتون اومده باشه.

میخواستم این مبحث رو ادامه بدم اما حسش نبود و در فرصتی دیگر ادامه میدیم .پس تا دیداری دیگر …بدرود.

اين مطلب را براي خود يا دوستان ايميل کنيد

JQuery Tabber
    احسان ایمان
    احسان ایمان محمد رضا ایمان هستم فارغ التحصیل کارشناسی ریاضی دانشگاه حکیم سبزواری. متولد 1369/10/10 شهر نیشابور... علاقه مند به موسیقی سنتی؛طراحی گرافیکی و سایت؛برنامه نویسی؛شعر و... شناسه تلگرام: ehsaniman@
    مشخصات اصلی:محمد رضاایمان
    ایمیل نویسنده:ehsaniman68@gmail.com
    سطح :10
    تعداد پستهای نویسنده:280


    نام ونام خانوادگی
    ایمیل
    موبایل
    متن شکایت
    من ربات نیستم: دو + دو =؟ (الزامی)

    نام پست
    نام ونام خانوادگی شما
    ایمیل شما
    توضیحات
    من ربات نیستم: دو + دو =؟ (الزامی)

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

توجه کنید که برای نوشتن عبارات ریاضی میتوانید از برنامه نویسی لاتک استفاده کنید.مثال:
[latex]
x^2+y^2
[latex/]
که بانوشتن این کد در قسمت نظرات،حاصل بصورت نمادین ظاهر میشود.