Facebook
From Eratic Bee, 4 Years ago, written in C.
Embed
Download Paste or View Raw
Hits: 127
  1. #include <stdio.h>
  2. #include <string.h>
  3. void binary(int n)
  4. {
  5.         if (n > 0)
  6.         {
  7.                 binary(n / 2);
  8.                 printf("%d", n % 2);
  9.         }
  10. }
  11. int decimal(char *bin)
  12. {
  13.         int n = strlen(bin) - 1;
  14.         int y = bin[0] - 48;
  15.         int i;
  16.         for (i = 1; i <= n; i++)
  17.                 y = y * 2 + bin[i] - 48;\
  18.         return y;
  19. }
  20. int main()
  21. {
  22.         start:
  23.         printf("Wybierz opcje:\n");
  24.         printf("1 - konwersja z systemu dziesietnego na dwojkowy;\n");
  25.         printf("2 - konwersja z systemu dwojkowego na dziesietny;\n");
  26.         printf("3 - zakoncz program;\n");
  27.         int menu;
  28.         int a,c;
  29.         char b[15]="";
  30.         int nr = 75065;
  31.         scanf_s("%d", &menu);
  32.         switch (menu)
  33.         {
  34.                 case 1:
  35.                         printf("Podaj liczbe w systemie dziesiatkowym:\n");
  36.                         scanf_s("%d", &a);
  37.                         if ((a >= 0) && (a <= nr)) { printf("\n %d(10) = ", a); binary(a); printf("(2)"); }
  38.                                 else { printf("Liczba spoza zakresu!\n\n"); goto start; break; }
  39.                 case 2:
  40.                         printf("Podaj liczbe w systemie dwojkowym:\n");
  41.                         scanf_s("%s", &b);
  42.                         c = decimal(b);
  43.                         if ((c >= 0) && (c <= nr)) { printf("\n %s(2) = %d(10)", b,c);}
  44.                                 else { printf("Liczba spoza zakresu!\n\n"); goto start; break; }
  45.                 case 3:
  46.                         break;
  47.                 default:
  48.                         goto start;
  49.         }
  50.         return 0;
  51. }