Die Aufgabe
Aufgabe 6.3
a) Schreiben Sie ein Java-Programm A6_3a, welches eine einzulesende natürliche Zahl einschließlich 0 von der Dezimaldarstellung in die Dualdarstellung umwandelt. Die Stellenzahl richtet sich nach der Größe der eingegebenen Zahl. Orientieren Sie sich an der Divisionsmethode aus Kapitel 1.
Hinweis: Die Divisionsmethode ermittelt die einzelnen Ziffern der Dualzahl von rechts nach links. Das Programm soll sie zeilenweise ausgeben, die niedrigstwertige zuerst.
| Beispiel: Eingabe | 13 | |
| Ausgabe | 1 | ← LSB |
| 0 | ||
| 1 | ||
| 1 | ← MSB |
b) Kopieren Sie Ihr Programm A6_3a (neuer Name A6_3b). Ändern Sie das neue Programm so ab, dass die Dualzahl immer mit 10 Stellen ausgegeben wird, d. h. ggf. sind führende Nullen zu ergänzen.
In a) liest das Programm eine Zahl x ab 0 und gibt ihre Dualziffern untereinander aus, zuerst die niedrigstwertige, also die ganz rechts (englisch LSB, least significant bit). Zuletzt kommt die höchstwertige ganz links (MSB, most significant bit). Es gibt so viele Zeilen, wie die Zahl Stellen braucht. In b) sind es immer 10 Zeilen; fehlende Stellen vorn werden mit Nullen aufgefüllt.
x % 2 ist die nächste Dualziffer (der Rest), x / 2 ist die Zahl für die nächste Zeile (der Quotient). In der Vorlesung heißen sie x mod 2 und x div 2.- a) Die Divisionsmethode für 13 von Hand.
- a) Klären, in welcher Reihenfolge die Ziffern kommen.
- a) Eine Zeile der Tabelle als Java.
- a) Die passende Schleife: do-while.
- a) x einlesen.
- a) Testen mit 13, 0 und 72.
- b) Warum die Nullen von selbst kommen.
- b) Genau 10 Runden mit for.
- b) Ergänzung: Zahlen über 1023 abfangen.
- b) Testen.