Blatt 2, Aufgabe 2.1

Bin2long.java

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Blatt 2, Aufgabe 2.1
Aus der Angabe

Gehe ich hier von Binärzahl aus {“0”, “00”, “01”, “11”, …}
oder von Binärzahl aus {“0b0”, “0b00”, “0b01”, “0b11”, …} aus?

Rev. nach Hinweis - sorry, noch zu früh heute.

Und danke, dann schaue ich gleich mal nach…


Der öffentliche Test könnte einen Hinweis liefern :wink:

PS: “[m]0x[/m]” leitet i.d.R. eine Hex-Zahl ein.


Danke, nochmals - soweit war ich nicht gekommen.

Und zusätzlich stand die Antwort auch irgendwie in a)


Bitte, noch ´ne Frage,

Bedeutet dies,

bezogen auf eine (maximal sinnvolle) Bitlänge
→ dann würde ich mir führende Nullen ggf. dazu denken

oder

bezogen auf die Länge des Eingabe-String
→ dann schaue ich mir einfach mein Vorzeichenbit an

Der JUnit-Test sagts mir diesmal leider nicht.


Das zweite, die Eingabe entspricht der tatsächlichen 2-erkomplement-Darstellung.
D.h. “111” würde zu -1 umgerechnet werden.


this
(ansonsten müsste spezifiziert sein, wie lang der “volle/normale” BitString sein soll)


Die Länge hätte ich sonst auf den gültigen Zahlenbereich von long bezogen.

Danke sehr.

1 Like

Die Aufgabe wäre leichter, wenn der String immer genau 8 Ziffern hätte… Dann könnte man ja viel einfacher programmieren, dass an der Stelle [0] man eben 1 oder 0 * 2^7 rechnen muss…
Ich bin gerade überfragt, wenn manche Strings dann 3 Ziffern haben, andere 7 und andere nur 1… Dann ändert sich ja jedes mal die “Anfangspotenz”. Ich habe in meinem Programm zwei neue Variablen eingeführt (Exponent und Index) die ich eben dann erhöhe bzw. den Exponent verringere, da man ja bei genau 8 Ziffern Exponent 7, dann 6, usw… hat.
Muss man das überhaupt alles bei der 2.1 beachten? Ich würde einfach mal vermuten, dass bei Blatt 2 die “kleine” Einzelaufgabe 1 ja bestimmt nicht soooo schwierig sein kann… Vll kann man die Aufgabe ganz anders viel kürzer lösen…? :slight_smile:


Du kannst doch den String einfach “von rechts nach links” und nicht “von links nach rechts” lesen.


Eine Schleife und String#length() könnten deinem verwirrten Hirn Abhilfe verschaffen…

[AuD] Rotes Kreuz bei EA2.1: Bin2Long
Vielen Dank für die est-Mail, faire Sache.

Auch wenn ichs jetzt geändert habe, meines Erachtens hätten String.isEmpty() und ggf. auch String.toCharArray() unter der obigen Einschränkung zulässig sein sollen.


Und String.isEmpty() braucht man nicht wirklich. Geht definitiv auch ohne ohne Probleme :stuck_out_tongue:

Test Cases
Folgendes Problem:

Die Bin2LongPublicTest.java compiliert fehlerlos.
EST sagt aber “X Submitted files don’t compile with the test case”

Ich dachte es wurde auf jUnit gewechselt DAMIT eben die Testcases identisch sind?!
Woran kann’s also liegen?! o_O


Es liegt daran, dass du die Bin2LongPublicTest.java verändert hast.
Lads mal nochmal neu runter.


Das rote Kreuz erscheint vor dem Testen mit JUnit. Meist wurde dann die Schnittstelle von euch veraendert. Das passiert leider auch in Eclipse manchmal zu automatisch per QuickFix…


Oder Du hast ähnliche Methoden wie in #11 beschrieben verwendet, so wars bei mir.


Ich habe ein kleines Verständnisproblem bei b). Wie soll ich ein einzelnes Zeichen umwandeln? Ein kleines Beispiel wäre auch genug, danke!


long res = char2BitLong('0');  //res = 0
res = char2BitLong('1');  //res = 1

xxxxxxxxxxxxxxxxxxxxxxxxxxxx Besser alles wieder raus…