• Index
  •  » Programy
  •  » Przydatny programik do przekształcania liczb

#1 03-25-2007 14:36:26

mmiles

Member

4140557
Skąd: B-stok / Ełk
Zarejestrowany: 03-08-2007
Posty: 10
Punktów :   

Przydatny programik do przekształcania liczb

Program służy do konwersji liczb np dziesiętnych na dwójkowe, trójkowe, czwórkowe i tak do trzydziestoszóstkowych, no i oczywiście odwrotnie dwójkowe na trójkowe czy też np szesnastkowe na jedenastkowe. Wszystkie kombinacje Można stosować liczby typu "AZ32FD4" ale używając tylko WIELKICH LITER. Prosze testować, ewentualne poprawki wrzucać tu na forum!
Pozdrawiam, a o to kod:




Kod:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define WINDOWS

void clrscr()
{
   #ifdef WINDOWS
   system("cls");
   #else
   system("clear");
   #endif
}


long long int potega(int a, int r)
{
long long int p=1;
   while (a != 0 )
    {
     p*=r;
     a--;
    }
 return p;
}



int main()
{
 const int MAX=100;
 char liczba[2000];
 int dl, i=0, a=0, sys, liczba_wyj;
 int tab[MAX];
 long long int l=0;

      printf("PODAJ LICZBE DO KONWERSJI\n");    
      scanf("%s",liczba);
      
      clrscr();
      printf("W JAKIM SYSTEMIE PODALES LICZBE?\n\n2-dwojkowy\n3-trojkowy\n4-czworkowy\n...\n");
      printf("36-trzydziestoszostkowy\n\n");
      scanf("%i",&sys);
      
      clrscr();
      printf("W JAKIM SYSTEMIE CHCESZ ORZYMAC LICZBE");
      printf("\n\n2-dwojkowy\n3-trojkowy\n4-czworkowy\n...\n");
      printf("36-trzydziestoszostkowy\n\n");
      scanf("%i",&liczba_wyj);


      dl = strlen(liczba);

      for(i = dl-1; i >= 0; i--)
        if (liczba[i] >= 65)
         l+=(liczba[i]-55) * potega(dl-i-1,sys);
        else
         l+=(liczba[i]-48) * potega(dl-i-1,sys);

      i=0;
      while (l != 0)
      {
         tab[i]=l%liczba_wyj;
         l = l/liczba_wyj;
         i++;
         a++;
      }

      
      clrscr();
      printf("Liczba po zamianie to: \n");
      for (i=a-1; i>=0; i--)
          if (tab[i] >= 10 )
           {
             l=tab[i];
             liczba[i]= l + 55;
             printf("%c",liczba[i]);
           }
          else
           {
             l=tab[i];
             liczba[i]= l + 48;
             printf("%c",liczba[i]);
           }
      

 getchar();
 getchar();
 return 0;
}

Offline

 
  • Index
  •  » Programy
  •  » Przydatny programik do przekształcania liczb

Stopka forum

RSS
Powered by PunBB 1.2.23
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
GotLink.pl