二进制与八进制之间的相互转换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/munan2017/article/details/80316379

八进制转二进制(中间借助十进制)

#include<stdio.h>

#include<math.h>

intmain()

{

    int n,now=0,i,remainder;

         scanf("%d",&n);

 

         //八进制转十进制

    for(i=0;;i++)

         {

                   remainder=n%10;

                   now=now+remainder*pow(8,i);

                   if(n/10==0)

                   {

                            //printf("%d\n",now);

                            break;

                   }

                   n=n/10;   

         }

         //scanf("%d",&n);

         n=now;

 

         //十进制转二进制

                   now=0;

         for (i=0;;i++)

         {

                   remainder=n%2;

                   now=now+remainder*pow(10,i);

                   if(n==0)

                   {

                            printf("%d\n",now);

                            break;

                   }

         n=n/2;

         }

         return 0;

}

 

二进制转八进制

#include<stdio.h>

#include<math.h>

intmain()

{

    int n,now=0,i,remainder;

         scanf("%d",&n);

 

         //二进制转十进制

    for(i=0;;i++)

         {

                   remainder=n%10;

                   now=now+remainder*pow(2,i);

                   if(n/10==0)

                   {

                            //printf("%d\n",now);

                            break;

                   }

                   n=n/10;   

         }

         //scanf("%d",&n);

         n=now;

 

         //十进制转八进制

                   now=0;

         for (i=0;;i++)

         {

                   remainder=n%8;

                   now=now+remainder*pow(10,i);

                   if(n==0)

                   {

                            printf("%d\n",now);

                            break;

                   }

         n=n/8;

         }

         return 0;

}


猜你喜欢

转载自blog.csdn.net/munan2017/article/details/80316379