Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#6

Re: Konvertierung Binär Dezimal

  Alt 8. Dez 2005, 18:26
Code:
.                           Rest                    
. 23456789 div 10 = 2345678, 9
. 2345678 div 10 =  234567, 8
.  234567 div 10 =   23456, 7
.   23456 div 10 =    2345, 6
.    2345 div 10 =     234, 5
.     234 div 10 =      23, 4
.      23 div 10 =       2, 3
.       2 div 10 =       0, 2
Teile X wiederholt solange durch 10 bis es < 10 ist. Der Rest im jedem Zwischenschritt wird in eine Ziffer ds Dezimalsystemes umgewandelt.

Das wäre der naive Ansatz wenn man zb. keine schnellen Multipliaktion oder Divisionen für große Zahlen hat. Hat man diese, wie die meisten guten Libraries, dann geht es schneller !

Code:

.                     23456789 div 10000 = 2345 , 6789
.       2345 div 1000 = 23, 45                          6789 div 1000 = 67 , 89
. 23 div 20 = 2, 3            45 div 10 = 4,5   67 div 10 = 6,7                  89 div 10 = 8,9
In diesem, sehr idealistischen Beispiel, entsteht eine Pyramide von 10'er Potenzen von 10 -> 100 -> 10000, also 10 -> 10*10 -> 10*10*10*10, also 10^1 -> 10^2 -> 10^4 -> 10^8 -> 10^16 usw.. also Base^(2^i) {i=1..j}.

Meine DECMath Library benutzt exakt diesen Weg, aber für die Konvertierung von Strings<->>Zahlen in beiden Richtungen.

Ausnahmen sind Basen die direkt kompatibel zu Basis deiner internen Zahlendarstellungen sind. Du benutzt 2^32 = 2^(2^5) und diese ist zu alle Basen 2^(2^x) direkt kompatibel. Diese Basen werden in der Konverierung durch einfach Bitextraktionen umgewandelt.


Gruß Hagen

[edit]
man ist das ein shit, es gibt keine Möglichkeit mal eben einen Text auf einfache Art&Weise per FixedFont und Leerzeichen sauber zu formatieren ! Soll ich erst ein CAD Program starten um sowas sauber hinzubekommen,wenn ich mal eben in 2 Minuten eine Antwort schreiben möchte ?
[/edit]
  Mit Zitat antworten Zitat