Advertisement
Radoan_Ahmed

Final project

Aug 18th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.34 KB | None | 0 0
  1. #include<stdio.h>
  2. void decimal_binary(int c)
  3. {
  4.  
  5.     int count=0,i=0,arr[1000];
  6.     while(c!=0)
  7.     {
  8.         arr[i]=c%2;
  9.         count+=1;
  10.         c=c/2;
  11.         i++;
  12.     }
  13.     for(i=count-1; i>=0; i--)
  14.     {
  15.         printf("%d",arr[i]);
  16.  
  17.     }
  18.  
  19. }
  20. void decimal_octal(int c)
  21. {
  22.  
  23.     int count=0,i=0,arr[1000];
  24.     while(c!=0)
  25.     {
  26.         arr[i]=c%8;
  27.         count+=1;
  28.         c=c/8;
  29.         i++;
  30.     }
  31.     for(i=count-1; i>=0; i--)
  32.     {
  33.         printf("%d",arr[i]);
  34.  
  35.     }
  36.  
  37. }
  38. void decimal_hexa(int a)
  39. {
  40.     int  i=0,count=0,arr[1000];
  41.     while(a!=0)
  42.     {
  43.         arr[i]=a%16;
  44.         count+=1;
  45.         a=a/16;
  46.         if(arr[i]<10)
  47.         {
  48.             arr[i]=48+arr[i];
  49.         }
  50.         else if(arr[i]>=10)
  51.         {
  52.             arr[i]=55+arr[i];
  53.         }
  54.         i++;
  55.  
  56.     }
  57.     for(i=count-1; i>=0; i--)
  58.     {
  59.         printf("%c",arr[i]);
  60.     }
  61.  
  62. }
  63. int  bin_decimal(int c)
  64. {
  65.     int temp=0,i=0,mod;
  66.     while(c!=0)
  67.     {
  68.         mod=c%10;
  69.         temp=temp+mod*pow(2,i);
  70.         c=c/10;
  71.         i++;
  72.     }
  73.     return temp;
  74. }
  75. int  octaldecimal(int c)
  76. {
  77.     int temp=0,i=0,mod;
  78.     while(c!=0)
  79.     {
  80.         mod=c%10;
  81.         temp=temp+mod*pow(8,i);
  82.         c=c/10;
  83.         i++;
  84.     }
  85.     return temp;
  86. }
  87. int hexadecimal_decimal(char hex[100])
  88. {
  89.     int i = 0, val,decimal,len;
  90.     decimal = 0;
  91.     len = strlen(hex);
  92.     len--;
  93.     for(i=0; hex[i]!='\0'; i++)
  94.     {
  95.         if(hex[i]>='0' && hex[i]<='9')
  96.         {
  97.             val = hex[i] - 48;
  98.         }
  99.         else if(hex[i]>='a' && hex[i]<='f')
  100.         {
  101.             val = hex[i] - 97 + 10;
  102.         }
  103.         else if(hex[i]>='A' && hex[i]<='F')
  104.         {
  105.             val = hex[i] - 65 + 10;
  106.         }
  107.  
  108.         decimal += val * pow(16, len);
  109.         len--;
  110.  
  111.     }
  112.     return decimal;
  113.  
  114. }
  115.  
  116. int main()
  117. {
  118.     struct number
  119.     {
  120.         int a,c;
  121.     };
  122.     FILE *file;
  123.     struct number name;
  124.     char str[1000];
  125.     int x,k,b,arr[1000],count,i,arr1[1000],arr2[1000],h;
  126.     file = fopen("run.txt","a");
  127.     printf("Select operator \n");
  128.     printf("1. DIC\n");
  129.     printf("2. BIN\n");
  130.     printf("3. OCT\n");
  131.     printf("4. HEX\n");
  132.     printf("5. CONTINUE\n");
  133.     printf("6. EXIT\n");
  134.     point:
  135.     scanf("%d",&name.a);
  136.     if(name.a==1)
  137.     {
  138.         printf("DIC ");
  139.         scanf("%d",&name.c);
  140.         fprintf(file,"DIC %d\n",name.c);
  141.         k=name.c;
  142.         i=count=0;
  143.         while(name.c!=0)
  144.     {
  145.         arr[i]=name.c%2;
  146.         count+=1;
  147.         name.c=name.c/2;
  148.         i++;
  149.     }
  150.     fprintf(file,"BIN ");
  151.     printf("BIN ");
  152.     for(i=count-1; i>=0; i--)
  153.     {
  154.         printf("%d",arr[i]);
  155.          fprintf(file,"%d",arr[i]);
  156.  
  157.     }
  158.     i=count=0;
  159.     h=k;
  160.     while(k!=0)
  161.     {
  162.         arr1[i]=k%8;
  163.         count+=1;
  164.         k=k/8;
  165.         i++;
  166.     }
  167.      fprintf(file,"\nOCT ");
  168.     printf("\nOCT ");
  169.     for(i=count-1; i>=0; i--)
  170.     {
  171.         printf("%d",arr1[i]);
  172.         fprintf(file,"%d",arr1[i]);
  173.  
  174.     }
  175.     i=count=0;
  176.      while(h!=0)
  177.     {
  178.         arr2[i]=h%16;
  179.         count+=1;
  180.         h=h/16;
  181.         if(arr2[i]<10)
  182.         {
  183.             arr2[i]=48+arr2[i];
  184.         }
  185.         else if(arr2[i]>=10)
  186.         {
  187.             arr2[i]=55+arr2[i];
  188.         }
  189.         i++;
  190.  
  191.     }
  192.     fprintf(file,"\nHEX ");
  193.     printf("\nHEX ");
  194.     for(i=count-1; i>=0; i--)
  195.     {
  196.         printf("%c",arr2[i]);
  197.         fprintf(file,"%c",arr2[i]);
  198.     }
  199.  
  200.     }
  201.  
  202.     else if(name.a==2)
  203.     {
  204.  
  205.         printf("BIN ");
  206.         scanf("%d",&name.c);
  207.         fprintf(file,"\nBIN %d",name.c);
  208.         x=bin_decimal(name.c);
  209.         k=x;
  210.         fprintf(file,"\nDIC %d",x);
  211.         printf("DIC %d",x);
  212.         fprintf(file,"\nOCT ");
  213.         printf("\nOCT ");
  214.         int count=0,i=0,arr[1000];
  215.         while(x!=0)
  216.         {
  217.             arr[i]=x%8;
  218.             count+=1;
  219.             x=x/8;
  220.             i++;
  221.         }
  222.         for(i=count-1; i>=0; i--)
  223.         {
  224.              printf("%d",arr[i]);
  225.              fprintf(file,"%d",arr[i]);
  226.  
  227.         }
  228.             i=count=0;
  229.      while(k!=0)
  230.     {
  231.         arr2[i]=k%16;
  232.         count+=1;
  233.         k=k/16;
  234.         if(arr2[i]<10)
  235.         {
  236.             arr2[i]=48+arr2[i];
  237.         }
  238.         else if(arr2[i]>=10)
  239.         {
  240.             arr2[i]=55+arr2[i];
  241.         }
  242.         i++;
  243.  
  244.     }
  245.     fprintf(file,"\nHEX ");
  246.     printf("\nHEX ");
  247.     for(i=count-1; i>=0; i--)
  248.     {
  249.         printf("%c",arr2[i]);
  250.         fprintf(file,"%c",arr2[i]);
  251.     }
  252.     }
  253.     else if(name.a==3)
  254.     {
  255.         fprintf(file,"\nOCT ");
  256.          printf("OCT ");
  257.         scanf("%d",&name.c);
  258.         x=octaldecimal(name.c);
  259.         printf("DIC %d",x);
  260.         fprintf(file,"\nDIC %d",x);
  261.         k=x;
  262.          i=count=0;
  263.         while(x!=0)
  264.     {
  265.         arr[i]=x%2;
  266.         count+=1;
  267.         x=x/2;
  268.         i++;
  269.     }
  270.     fprintf(file,"\nBIN ");
  271.     printf("\nBIN ");
  272.     for(i=count-1; i>=0; i--)
  273.     {
  274.         printf("%d",arr[i]);
  275.         fprintf(file,"%d",arr[i]);
  276.  
  277.     }
  278.                i=count=0;
  279.      while(k!=0)
  280.     {
  281.         arr2[i]=k%16;
  282.         count+=1;
  283.         k=k/16;
  284.         if(arr2[i]<10)
  285.         {
  286.             arr2[i]=48+arr2[i];
  287.         }
  288.         else if(arr2[i]>=10)
  289.         {
  290.             arr2[i]=55+arr2[i];
  291.         }
  292.         i++;
  293.  
  294.     }
  295.     fprintf(file,"\nHEX ");
  296.     printf("\nHEX ");
  297.     for(i=count-1; i>=0; i--)
  298.     {
  299.         printf("%c",arr2[i]);
  300.         fprintf(file,"%c",arr2[i]);
  301.     }
  302.     }
  303.     else if(name.a==4)
  304.     {
  305.         fprintf(file,"HEX ");
  306.         printf("HEX ");
  307.         scanf("%s",str);
  308.         x=hexadecimal_decimal(str);
  309.         printf("DIC %d",x);
  310.         fprintf(file,"\nDIC %d",x);
  311.         k=x;
  312.         i=count=0;
  313.     while(x!=0)
  314.     {
  315.         arr1[i]=x%8;
  316.         count+=1;
  317.         x=x/8;
  318.         i++;
  319.     }
  320.     fprintf(file,"\nOCT ");
  321.     printf("\nOCT ");
  322.     for(i=count-1; i>=0; i--)
  323.     {
  324.         printf("%d",arr1[i]);
  325.         fprintf(file,"%d",arr1[i]);
  326.  
  327.     }
  328.         i=count=0;
  329.         while(k!=0)
  330.     {
  331.         arr[i]=k%2;
  332.         count+=1;
  333.         k=k/2;
  334.         i++;
  335.     }
  336.     fprintf(file,"\nBIN ");
  337.     printf("\nBIN ");
  338.     for(i=count-1; i>=0; i--)
  339.     {
  340.         fprintf(file,"%d",arr[i]);
  341.         printf("%d",arr[i]);
  342.  
  343.     }
  344.     }
  345.     scanf("%d",&b);
  346.     if(b==5)
  347.     {
  348.         goto point;
  349.     }
  350.     fclose(file);
  351.  
  352. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement