Advertisement
Radoan_Ahmed

Untitled

Aug 9th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.01 KB | None | 0 0
  1. #include<stdio.h>
  2. int hexadecimal_decimal(char hex[100])
  3. {
  4.     int i = 0, val,decimal,len;
  5.     decimal = 0;
  6.     len = strlen(hex);
  7.     len--;
  8.     for(i=0; hex[i]!='\0'; i++)
  9.     {
  10.         if(hex[i]>='0' && hex[i]<='9')
  11.         {
  12.             val = hex[i] - 48;
  13.         }
  14.         else if(hex[i]>='a' && hex[i]<='f')
  15.         {
  16.             val = hex[i] - 97 + 10;
  17.         }
  18.         else if(hex[i]>='A' && hex[i]<='F')
  19.         {
  20.             val = hex[i] - 65 + 10;
  21.         }
  22.  
  23.         decimal += val * pow(16, len);
  24.         len--;
  25.  
  26.     }
  27.     return decimal;
  28.  
  29. }
  30. int  octaldecimal(int c)
  31. {
  32.     int temp=0,i=0,mod;
  33.     while(c!=0)
  34.     {
  35.         mod=c%10;
  36.         temp=temp+mod*pow(8,i);
  37.         c=c/10;
  38.         i++;
  39.     }
  40.     return temp;
  41. }
  42. int  decimal(int c)
  43. {
  44.     int temp=0,i=0,mod;
  45.     while(c!=0)
  46.     {
  47.         mod=c%10;
  48.         temp=temp+mod*pow(2,i);
  49.         c=c/10;
  50.         i++;
  51.     }
  52.     return temp;
  53. }
  54. void hexadecimal(int a)
  55. {
  56.     int  i=0,count=0,arr[1000];
  57.     while(a!=0)
  58.     {
  59.         arr[i]=a%16;
  60.         count+=1;
  61.         a=a/16;
  62.         if(arr[i]<10)
  63.         {
  64.             arr[i]=48+arr[i];
  65.         }
  66.         else if(arr[i]>=10)
  67.         {
  68.             arr[i]=55+arr[i];
  69.         }
  70.         i++;
  71.  
  72.     }
  73.     for(i=count-1; i>=0; i--)
  74.     {
  75.         printf("%c",arr[i]);
  76.     }
  77. }
  78. void dci_oct(int c)
  79. {
  80.     printf("%o",c);
  81. }
  82. void binary(int c)
  83. {
  84.     int count=0,i=0,arr[1000];
  85.     while(c!=0)
  86.     {
  87.         arr[i]=c%2;
  88.         count+=1;
  89.         c=c/2;
  90.         i++;
  91.     }
  92.     for(i=count-1; i>=0; i--)
  93.     {
  94.         printf("%d",arr[i]);
  95.     }
  96. }
  97. int main()
  98. {
  99.     char str[50];
  100.     int a,c,x,i;
  101.     printf("Select operator \n");
  102.     printf("1. DIC\n");
  103.     printf("2. BIN\n");
  104.     printf("3. OCT\n");
  105.     printf("4. HEX\n");
  106.     for(i=0; ; i++)
  107.     {
  108.         scanf("%d",&a);
  109.         if(a==1)
  110.         {
  111.             printf("DIC ");
  112.             scanf("%d",&c);
  113.             printf("BIN ");
  114.             binary(c);
  115.             printf("\nOCT ");
  116.             dci_oct(c);
  117.             printf("\nHEX ");
  118.             hexadecimal(c);
  119.         }
  120.         else if(a==2)
  121.         {
  122.             printf("BIN ");
  123.             scanf("%d",&c);
  124.             x=decimal(c);
  125.             printf("DIC %d\n",x);
  126.             printf("OCT %o\n",x);
  127.             printf("HEX ");
  128.             hexadecimal(x);
  129.         }
  130.         else if(a==3)
  131.         {
  132.             printf("OCT ");
  133.             scanf("%d",&c);
  134.             printf("BIN ");
  135.             x=octaldecimal(c);
  136.             binary(x);
  137.             printf("\nDIC %d\n",x);
  138.             printf("HIX ");
  139.             hexadecimal(x);
  140.  
  141.         }
  142.         else if(a==4)
  143.         {
  144.             printf("HEX ");
  145.             scanf("%s",str);
  146.             x=hexadecimal_decimal(str);
  147.             printf("DIC %d\n",x);
  148.             printf("BIN ");
  149.             binary(x);
  150.             printf("\nOCT ");
  151.             dci_oct(x);
  152.  
  153.         }
  154.         else
  155.        {
  156.            printf("Wrong operator");
  157.            break;
  158.        }
  159.     }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement