B-adisch / Hornerverfahren
Konvertiert Zahlen zwischen beliebigen Basen (Binär, Oktal, Dezimal, Hex) mit Hornerverfahren.
Eingaben oben setzen und Berechnen drücken, dann wird die Schritt-für-Schritt-Rechnung angezeigt.
Funktionsweise und Bereich
Eine B-adische Darstellung schreibt eine Zahl n als Summe von Potenzen einer Basis B ≥ 2 mit Ziffern aus der Menge {0, …, B − 1}: n = ∑ bi · Bi, kompakt als (bk … b0)B notiert. Bekannte Beispiele sind das Binärsystem mit B = 2 (Ziffern 0 und 1), das Oktalsystem mit B = 8 (Ziffern 0 bis 7), das Dezimalsystem mit B = 10 (Ziffern 0 bis 9) und das Hexadezimalsystem mit B = 16 (Ziffern 0 bis 9 sowie A bis F). Um eine Dezimalzahl in eine B-adische Darstellung umzuwandeln, nutzt man das Hornerverfahren mit wiederholter ganzzahliger Division durch B; die Reste werden von unten nach oben gelesen und ergeben die Ziffern. Beispielsweise gilt 185 ÷ 8 = 23 Rest 1, 23 ÷ 8 = 2 Rest 7 und 2 ÷ 8 = 0 Rest 2, also 185 = (271)8. Umgekehrt erhält man eine Dezimalzahl aus einer B-adischen Darstellung, indem man Ziffer mal Bi über alle Positionen summiert: (271)8 = 2 · 64 + 7 · 8 + 1 = 185. Weil 8 = 23 und 16 = 24 gilt, lassen sich Binär- und Oktal- bzw. Hex-Darstellungen schnell stellenweise umrechnen, indem man jeweils 3 oder 4 Binärziffern zu einer Oktal- bzw. Hexziffer zusammenfasst, ausgehend vom niederwertigsten Bit rechts.
Wann verwenden?
Hex und Oktal kommen praktisch nur bei der Eingabe und Ausgabe binärer Daten zum Einsatz, beispielsweise bei Speicheradressen (0xFFFF0000), Bitmasken (0xF0 für die oberen 4 Bit), Farbcodes (HTML #FFAA00), Maschinencode-Disassembly oder den Linux-Dateirechten (chmod 755). In C wird ein Literal mit führender 0 (zum Beispiel 0173) als Oktalzahl interpretiert, ein Literal mit dem Präfix 0x als Hexzahl, alles andere als Dezimalzahl. Die printf-Formate sind %o für Oktal, %x für Hex in Kleinbuchstaben und %X für Hex in Großbuchstaben.