[C]Zahl X zur Basis X?

New C´ler

Cadet 2nd Year
Registriert
Apr. 2006
Beiträge
29
hey, hab mal wieder nen problemchn...also war dran nen programm zu schreiben was eben eine beliebige dezi. zahl mit einer beliebigen basis umrechnet...
da ich nich ganz so vorran kam, hab ich mir von jmd mit etwas mehr skills was zukommen lassn. dummerweise peil ich den code nich ganz und die person is zur zeit nich erreichbar..

drumm koennte mir hier vlt mal jmd erklaeren, was genau da abgeht :freak:

PHP:
#include <stdio.h>

void main()
  {
  int z,b,r,i=0;
  char x[50];
  printf("Bitte geben Sie eine nicht negative Zahl ein: ");
  scanf("%d",&z);
  printf("Bitte geben Sie als Basis eine Zahl>1 ein: ");
  scanf("%d",&b);
  
  if (z==0)                   //das ist klar
    {
    printf("Die Zahl 0 ist immer 0, egal zu welcher Basis");
    } 
  else
    {
    printf("Die Zahl %d zur Basis %d lautet: ",z,b);
 1   while(z>0)                                                               //ab hier komm ich nimmer ganz mit
 2     {
 3       r=z%b;
 4       if (r>9)
 5           x[i]=r+55;   //'7'
 
 6       else
 7           x[i]=r+48;   //'0'
 8       z=z/b;
 9       i++;
10      }
11     while(i>0)
12      {
13      printf("%c",x[--i]);
      }
    } 
}

ich hab mal die zeilen da durchnummeriert, is vlt dann bissl einfacher...koennte mir da jmd bissl weiterhelfn, hab bei manchem einfach verstaendnis probleme...das is halt schon bissl weiter als der rest is...vorarbeiten schadet ja niemandem ^.^
 
AW: Zahl X zur Basis X in C ?!

Naja ich hoffe du weisst, was der ASCII-Code ist, dann sollte klar sein, was zeile 4 macht:

Wenn Zahl größer 9 Addiere 55 hinzu (HEX-Ziffer):
10 +55 = 65 ->A
11 +55 = 66 -> B
...

Wenn Zahl kleiner 9 addiere 48 hinzu (DEZ-Ziffer):
0 + 48 = 48 -> 0
1 + 48 = 49 -> 1
...

Zeile 1-10 ist das Restwertverfahren: Von hexal zahlen in dezimal zahlen
Und Zeile 11-14 ist die umgekehrte Ausgabe der Zahlen :)
 
ahhh dank dir enigma...

hatte das mit A und B nich ganz gecheckt, is nu aber klar!!

merci beaucoup :)
 
Zurück
Oben