Zahlensystem mit basis 2^64 umrechenen



  • Ich habe eine Zahl mit der Basis 2^64 und will diese in eine Zahl mit der Basis 10 (also unser Zahlensystem umrechnen wie stell ich das am besten an)

    Ich habe 2 Zahlen mit der Basis 2^64 eine stellt die "einserstelle" da die andere die "zehnerstelle", wie rechne ich das am besten um?
    zum besseren verständnis sagen wir hexasystem "AC" (A: an der zehnerstelle, B: an der einserstelle) wie rechne diese Zahl also um? Das kann man dann ja auch auf die basis 2^64 übertragen.

    Ich habe n Zahlen mit der Basis 64 ... Wie rechne ich diese um?

    Entschuldigt bitte solche ausdrücke wie "einserstelle" aber ich hab keine ahnung wie man das sonst nennt.

    PS: Wär es einfacher mit einer Basis von 10^x zu rechnen als einer Basis von 2^x?



  • $$

    \begin{eqnarray*}
    a^b = c^d\
    b = log_a(c^d)\
    b = d * log_a(c)
    \end{eqnarray*}$$

    Wenn du jetzt ne Zahl mit der Basis 2^64 hast und das gern in einer Potenz mit der Basis 10 haben willst, sieht das so aus:

    $$

    \begin{eqnarray*}
    10^b = (2{64})d\
    b = d * lg(2^{64})
    \end{eqnarray*}$$

    Wie ging Zeilenumbruch und Multiplizieren in LaTeX nochmal 😕



  • Um eine Zahl in einem beliebigen System darzustellen, nimmst du den Divisionsrest der Division durch die Basis. Das ist die letzte Stelle. Dann teilst du durch die Basis, und machst mit dem Ergebnis dasselbe (vorletzte Stelle usw.), bis 0 rauskommt.



  • Solange du keine Kommastellen hast, ist es IMO egal, was für eine Basis du benutzt.
    Und zur Umrechnung: Modulo und Ganzzahldivision sind die Operationen, die du dazu brauchst. Dann machst du ne einfache Iteration, und fertig!

    PS: Machs mal auf nem Blatt Papier per Hand, dann ist der Algorithmus dazu auch kein Problem mehr.



  • informier dich mal ein wenig zum thema "stellenwertsystem". was lernt man eigentlich heutzutage noch in der schule? ich kann nur wiederholt empfehlen, mathe statt maple zu belegen.

    klar ist doch sicher 2015 = 2*10^3 + 0*10^2 + 1*10^1 + 5*10^0. siehst du die ganzen zehnen? deshalb spricht man vom zehnersystem. wir koennen statt dessen auch irgendeine andre basis k nehmen, dann ist
    (xn,xn1,...,x2,x1,x0)k=i=0nxiki(x_{n},x_{n-1},...,x_{2},x_{1},x_{0})_{k}=\sum_{i=0}^{n}x_{i}k^{i}. gerade eben haben wir (2,0,1,5)10(2,0,1,5)_{10} betrachtet, und nun weisst du auch, dass (a,b)264=a264+b(a,b)_{2^{64}}=a\cdot 2^{64}+b ist.



  • Also wenn ich danneine zahl zur basis 2^32 umrechne:

    (78,26436,2398,78923) = 78*(232)3 +26436*(232)2 + 2398*(232)1 + 78923*(232)0

    Mach ich das so, aber spätestens bei der 78 bekomme ich probleme da ich hier eine zahl von größer als 2^64 bekomme und das kann kein "long int" mehr fassen. (Das ganze ist teil eines programms). Ich bräuchte ein umrechnungsverfahren das die zahlen:
    Das keine ergebnisse über 2^64 erhählt (Das gesamt ergebnis ist natürlich mehr, aber ich will das auf dem bildschirm einfach einzeln nacheinander ausgeben, sodass intern keine zahl über 2^64 bei einer basis von 2^32 herauskommt.
    Am besten also ein algorithmus der immer nur 2 stellen betrachtet die erste stelle ausgibt und mit einem übertrag mit der 3 weiterrechnet, denn 2 stellen der basis 2^32 können ja nicht über sondernhöchstens genau 2^64 haben.

    Am besten wäre auch ein Algorithmus der nur die Grundrechenarten umfasst, muss aber nicht umbedingt sein.



  • Da bist Du grad ein bissel vom Weg abgekommen. Das mußt Du garnicht ausrechnen. Dich interessiert nicht, was der Wert gesamt ist. Dich interessieren nur die Koeffizienten in der Darstellung zur Basis 10.

    Du hast also
    78*(232)3 +26436*(232)2 + 2398*(232)1 + 78923*(232)0
    Und willst das in der Form
    Summe über a_i*10^i darstellen.

    Jetzt mußt Du den Algo von MFK benutzen und so die Darstellung rauskriegen. Ein echtes "ausrechnen" dieses Terms ist nicht notwendig.


Anmelden zum Antworten