Hi 
Also, ich hab für die Uni ne Hausaufgabe bei der ich in nem Programm unteranderem für eine ganze Zahl die Kodierung im 8Bit 2er Kompliment ausgeben muss. Da der vorderste Bit eh nur das Vorzeichen angibt, lass ich den gerade mal außenvor.
Zur Info: Ich darf dazu im Prinzip nur Schleifen verwenden.
Der Sinn an der ganzen Sache soll folgender sein:
Das erste if testet, ob ich an der Stelle an der ich gerade bin ne 0 oder ne 1 brauche und speichert das erstmal in y. Danach geh ich mit e / 2 an die nächste Stelle.
Das zweite if testet jetzt, ob ich überhaupt an der richtigen Stelle bin um das y auszugeben, wenn dem so ist soll genau das passieren. Das bit ist mit 7 initialisiert. Danach soll das e wieder auf seinen Urpsrungswert vor der schleife zurück gesetzt werden (der Wert von exponent) und das bit auf 13 erhöht werden, weil ich die obere Schleife jetzt 6mal durchlaufen muss um an die 6te Stelle zu kommen. Das ganze ToHuWaBoHu natürlich nur, weil ich sonst Bits in der falschen Reinfolge ausgegeben bekomme.
Problem ist dann: ich bekomme 6 0en. Egal was ich tue. Und da blockierts grad bei mir
Hat jmd ne Idee wie ich das Problem anders lösen kann oder ich den Code von oben korrigieren muss?
So, ziemlich lang für nen ersten Post, ich hoff das ist in Ordnung so
In jedem Fall schonmal Danke! für die Mühe :applaus:
LG
Also, ich hab für die Uni ne Hausaufgabe bei der ich in nem Programm unteranderem für eine ganze Zahl die Kodierung im 8Bit 2er Kompliment ausgeben muss. Da der vorderste Bit eh nur das Vorzeichen angibt, lass ich den gerade mal außenvor.
Zur Info: Ich darf dazu im Prinzip nur Schleifen verwenden.
Java:
for(zaehler = 1; zaehler <= 140; zaehler++){
if(e % 2 == 0) y = 0;
else y = 1;
e = e / 2;
if(zaehler == bit){
IO.print(y);
e = exponent;
bit = bit + (bit - 1);
}
}
Das erste if testet, ob ich an der Stelle an der ich gerade bin ne 0 oder ne 1 brauche und speichert das erstmal in y. Danach geh ich mit e / 2 an die nächste Stelle.
Das zweite if testet jetzt, ob ich überhaupt an der richtigen Stelle bin um das y auszugeben, wenn dem so ist soll genau das passieren. Das bit ist mit 7 initialisiert. Danach soll das e wieder auf seinen Urpsrungswert vor der schleife zurück gesetzt werden (der Wert von exponent) und das bit auf 13 erhöht werden, weil ich die obere Schleife jetzt 6mal durchlaufen muss um an die 6te Stelle zu kommen. Das ganze ToHuWaBoHu natürlich nur, weil ich sonst Bits in der falschen Reinfolge ausgegeben bekomme.
Problem ist dann: ich bekomme 6 0en. Egal was ich tue. Und da blockierts grad bei mir
Hat jmd ne Idee wie ich das Problem anders lösen kann oder ich den Code von oben korrigieren muss?
So, ziemlich lang für nen ersten Post, ich hoff das ist in Ordnung so
In jedem Fall schonmal Danke! für die Mühe :applaus:
LG