Welches ist der schnellste Weg, eine Dezimalzahl in Binär umzurechnen?

Das Ergebnis basiert auf 5 Abstimmungen

Zweierpotenzen 60%
Division durch zwei und Rest aufschreiben 40%

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Bei einfachen Zahlen, welche nahe einer gängigen Zweierpotent liegen, nutze ich die Zweierpotenzen. (reine Übungssache, wie das kleine 1×1. Die "Stützstellen 1,2,4,8,16,... hat man ja schon automatisch im Kopf...)

Bei komplexeren Zahlen komme ich nicht umhin mich durch die Division mit Rest zu hangeln.

Aber wenn ich vorm Rechner sitze und Programmiere habe ich ohnehin ein Powershellfenster offen, da tippe ich einfach:

'{0:x}' -f 137649

...Das geht schneller als den Calculator zu öffnen...

Divisionen sind aufwändig, selbst wenn nur durch 2 geteilt werden muss. Schneller lässt sich von Hand ein Vergleich und eine Subtraktion durchführen. Dazu schreibe ich die Zweierpotenzen untereinander auf. Jetzt vergleich ich meine Zahl mit den Zweierpotenzen bis ich die höchste gefunden habe, die noch rein passt.

  1. Ich notiere eine 1 und ziehe die Zweierpotenz von meiner Zahl ab. Die Differenz vergleiche ich absteigend mit den weiteren Zweierpotenzen.
  2. Für jede übersprungene Zweierpotenz notiere ich eine 0.
  3. Für die nächst gerade noch rein passende Zweierpotenz verfahre ich wieder wie Schritt 1.

Das setze ich solange fort, bis die Differenz 0 ergibt.

Im Besonderen bei IP-Adressen mit bis zu 2⁸ kann dieses "Schubladenverfahren" auch schnell fürs Kopfrechnen trainiert werden.

Anmerkung: Der Hintergrund dieses Verfahrens ist natürlich die Division durch 2 mit Restbildung, vor der Hand wird aber gar nicht dividiert sondern nur mit Zweierpotenzen verglichen.

Anmerkung 2: Das funktioniert genauso gut mit bspw. dem Hexadezimalsystem, wo ein Teilen durch 16 schon andere Kopfrechenkünste erfordern würde …

Amylee19 
Fragesteller
 14.01.2022, 19:59

Aber beim Hexadezimalsystem ist es doch viel einfacher, durch 16 zu teilen als 16er Potenzen zu berechnen

0
Von Experten Erzesel und HeniH bestätigt

Ich würde sagen das kommt auf die Zahl an und wie gut du die Operationen ausführen kannst. Bei 1025 würde ich z.B. die Methode mit den Zweierpotenzen nehmen (da ich viele Zweierpotenzen auswendig kenne). Ansonsten finde ich Division durch 2 meistens auch relativ gut machbar.

Der Taschenrechner

Amylee19 
Fragesteller
 14.01.2022, 08:00

Den dürfen wir in der Klausur leider nicht benutzen 😁

1
Zweierpotenzen

Kommt drauf an, wie groß die Zahlen sind. Wenn man sie noch im Kopf rechnen kann, geht die Methode mit den Zweierpotenzen schneller (bzw. auch einfacher). Wenn die Zahlen so groß sind, dass man sie schriftlich lösen muss, dürften die beiden Methoden keinen großen Unterschied machen. Da musst du dann einfach mal selbst messen, wie lange du brauchst, um z.B. 12345 in Binär umzurechnen.

daCypher  14.01.2022, 13:04

Ich habs jetzt mal gemessen. Bei 12345 hab ich schriftlich 1:30 min gebraucht, um es mit der "Dividieren und Rest aufschreiben" Methode zu machen und knapp das doppelte mit den Zweierpotenzen.

Ein anderer Nutzer hat z.B. die Zahl 1025 vorgeschlagen. Wenn man die Zweierpotenzen kennt, sieht man da auf den ersten Blick, dass es 1024+1 ist, also 0x401. Da geht es mit den Zweierpotenzen natürlich deutlich schneller.

1