Servus,
bin gerade dabei mir folgenden Code für ein Programm, das Dezimal- in Dualzahlen umwandeln soll, zu erarbeiten:
ich bin momentan dabei, die Umwandlung der positiven Zahlen nachvollziehen zu können, verstehe aber nicht, warum der Index in der Schleife bis 16 geht (Zeile 14) und warum man den Rest nochmal mit 10^i multiplizieren muss (Zeile 16).
Mit einer Antwort eurerseits, wäre mir sicherlich sehr geholfen;-)
Danke und lG
bin gerade dabei mir folgenden Code für ein Programm, das Dezimal- in Dualzahlen umwandeln soll, zu erarbeiten:
Java:
import java.util.Scanner;
public class Aufgabe_7 {
public static void main(String[] args) {
// Definition der und Ausgabevariable
long dualzahl = 0;
// Eingabe der Shortzahl
Scanner eingabe = new Scanner (System.in);
System.out.print("Bitte shortzahl eingeben
(zwischen -32768 und 32767): ");
short shortzahl = eingabe.nextShort();
System.out.println();
// Unterscheidung für positive und negative Zahlen
if (shortzahl >= 0) {
for (int i = 0; i < 16; i++) {
dualzahl = (long) (dualzahl + ((shortzahl % 2) *
Math.pow(10, i)));
shortzahl = (short) (shortzahl / 2);
}
} else {
shortzahl = (short) (shortzahl + 32768);
for (int j = 0; j < 16; j++) {
dualzahl = (long) (dualzahl + ((shortzahl % 2) *
Math.pow(10, j)));
shortzahl = (short) (shortzahl / 2);
}
dualzahl = (long) (dualzahl + Math.pow(10, 15));
}
// Ausgabe Dualzahl
System.out.println("Darstellung als Dualzahl: " +dualzahl);
}
}
ich bin momentan dabei, die Umwandlung der positiven Zahlen nachvollziehen zu können, verstehe aber nicht, warum der Index in der Schleife bis 16 geht (Zeile 14) und warum man den Rest nochmal mit 10^i multiplizieren muss (Zeile 16).
Mit einer Antwort eurerseits, wäre mir sicherlich sehr geholfen;-)
Danke und lG