C Programming Tutorial

 
 
 
 
#include<stdio.h>
#include<conio.h>
#include<math.h>
int D2B(int);
int D2O(int);
int D2H(int);
int B2O(int);
int B2H(int);
int O2H(int);
int B2D(int);
int O2D(int);
main()
{
  int ch,num;
  clrscr();
  printf(\"\\n1.Decimal 2 Binary.\");
  printf(\"\\n2.Decimal 2 Octal.\");
  printf(\"\\n3.Decimal 2 Hexa.\");
  printf(\"\\n4.Binary 2 Octal.\");
  printf(\"\\n5.Binary 2 Hexa.\");
  printf(\"\\n6.Octal 2 Hexa.\");
  printf(\"\\n7.Exit.\");
  printf(\"\\nEnter your Choice:\");
  scanf(\"%d\",&ch);
  switch(ch)
   {
     case 1:
          clrscr();
          printf(\"\\nEnter any Decimal number:\");
          if(scanf(\"%d\",&num)!=0 && num>0)
        D2B(num);  //calling function
          else
           printf(\"\\nNot Allowed!!\");
          break;
     case 2:
          clrscr();
          printf(\"\\nEnter any Decimal number:\");
          if(scanf(\"%d\",&num)!=0 && num>0)
        D2O(num);  //calling function
          else
           printf(\"\\nNot Allowed!!\");
          break;
     case 3:
          clrscr();
          printf(\"\\nEnter any Decimal number:\");
          if(scanf(\"%d\",&num)!=0 && num>0)
        D2H(num);  //calling function
          else
           printf(\"\\nNot Allowed!!\");
          break;
     case 4:
          clrscr();
          printf(\"\\nEnter any binary number:\");
          if(scanf(\"%d\",&num)!=0)// && (num==0 || num==1))
        B2O(B2D(num));  //calling function
          else
        printf(\"\\nNot Allowed!!\");
          break;
     case 5:
          clrscr();
          printf(\"\\nEnter any binary number:\");
          if(scanf(\"%d\",&num)!=0)// && (num==0 || num==1))
        B2H(B2D(num));  //calling function
          else
        printf(\"\\nNot Allowed!!\");
          break;
     case 6:
          clrscr();
          printf(\"\\nEnter any Octal number:\");
          if(scanf(\"%d\",&num)!=0)
        D2H(O2D(num));  //calling function
          else
           printf(\"\\nNot Allowed!!\");
          break;
     case 7:
          exit(0);
     default:
         printf(\"\\nEnter proper Choice:\");
         break;

   }
 getch();
}

int D2B(int dec) //decimal to binary
{
  int bin=0,*bin_arr,count=0;
  while(dec>0)
   {
     bin=dec%2;
     dec/=2;
     *(bin_arr+count)=bin;
     count++;
   }
  printf(\"\\nBINARY=\");
  while(count > 0)
   {
    --count;
    printf(\"%d\",*(bin_arr+count));
   }
   return 0;
}

int D2O(int dec) //decimal to octal
{
  int oct=0,*oct_arr,count=0;
  while(dec>0)
   {
     oct=dec%8;
     dec/=8;
     *(oct_arr+count)=oct;
     count++;
   }
  printf(\"\\nOCTAL=\");
  while(count > 0)
   {
    --count;
    printf(\"%d\",*(oct_arr+count));
   }
   return 0;
}

int D2H(int dec) //decimal to hexa
{
  int hexa=0,*hexa_arr,count=0;
  while(dec>0)
   {
     hexa=dec%16;
     dec/=16;
     *(hexa_arr+count)=hexa;
     count++;
   }
  printf(\"\\nHEXA=\");
  while(count > 0)
   {
    --count;
     switch(*(hexa_arr+count))
     {
       case 10:
            printf(\"A\");
            break;
       case 11:
            printf(\"B\");
            break;
       case 12:
            printf(\"C\");
            break;
       case 13:
            printf(\"D\");
            break;
       case 14:
            printf(\"E\");break;
       case 15:
            printf(\"F\");break;
       default:
            printf(\"%d\",*(hexa_arr+count));
            break;
     }
       }
   return 0;
}

int B2D(int bin) //binary to decimal
{
   int *bin_arr,count=0,dec=0,mod,idx=0;
   while(bin!=0)
    {
     mod=bin%10;
     bin/=10;
     *(bin_arr+count)=mod;
     count++;
    }
  while(count>0)
   {
     --count;
     bin=*(bin_arr+idx);
     dec+=bin * (int)(pow(2,idx));
     idx++;
   }
  return dec;
}

int B2O(int dec)
{
  int oct=0,*oct_arr,count=0;
  while(dec>0)
   {
     oct=dec%8;
     dec/=8;
     *(oct_arr+count)=oct;
     count++;
   }
  printf(\"\\nOCTAL=\");
  while(count > 0)
   {
    --count;
    printf(\"%d\",*(oct_arr+count));
   }
   return 0;
}
int B2H(int dec)
{
  int hexa=0,*hexa_arr,count=0;
  while(dec>0)
   {
     hexa=dec%16;
     dec/=16;
     *(hexa_arr+count)=hexa;
     count++;
   }
  printf(\"\\nHEXA=\");
  while(count > 0)
   {
    --count;
     switch(*(hexa_arr+count))
     {
       case 10:
            printf(\"A\");
            break;
       case 11:
            printf(\"B\");
            break;
       case 12:
            printf(\"C\");
            break;
       case 13:
            printf(\"D\");
            break;
       case 14:
            printf(\"E\");break;
       case 15:
            printf(\"F\");break;
       default:
            printf(\"%d\",*(hexa_arr+count));
            break;
     }
       }
   return 0;
}

int O2D(int oct)
{
   int *dec_arr,count=0,dec=0,mod,idx=0;
   while(oct!=0)
    {
     mod=oct%10;
     oct/=10;
     *(dec_arr+count)=mod;
     count++;
    }
  while(count>0)
   {
     --count;
     oct=*(dec_arr+idx);
     dec+=oct * (int)(pow(8,idx));
     idx++;
   }
  return dec;

}