Ich versuche einen Code zu schreiben, der eine Zahl in eine binäre umwandelt, und das ist was ich geschrieben habe. Es gibt mir ein paar Fehler in Eclipse, die ich nicht verstehe. Was stimmt damit nicht? Irgendwelche anderen Vorschläge? Ich würde gerne lernen und hören für Kommentare, um es zu beheben. Danke.
%Vor%Die Fehlermeldungen:
parseInt(String)
im Typ Integer
gilt nicht für die Argumente ( String[]
) (
",; erwartet )
",; erwartet void
ist ein ungültiger Typ für die Variable Binary
Integer.toBinaryString (int) sollte den Trick machen!
Und übrigens, korrigieren Sie Ihre Syntax, wenn Sie Eclipse verwenden Ich bin mir sicher, dass er sich über viele Fehler beschwert.
Arbeitscode:
%Vor% Vielleicht möchten Sie toBinaryString()
nicht verwenden. Du hast gesagt, dass du gerade lernst, also kannst du es selbst so machen:
Ich schlage vor, dass Sie Ihr Programm zuerst in Ihrer IDE kompilieren lassen. Wenn Sie keine IDE verwenden, schlage ich vor, dass Sie eine kostenlose bekommen. Dies wird Ihnen zeigen, wo Ihre Fehler sind und ich schlage vor, dass Sie die Fehler korrigieren, bis sie kompiliert werden, bevor Sie sich Gedanken darüber machen, wie Sie sie verbessern können.
Es gibt zwei Hauptprobleme, die Sie ansprechen müssen:
Zum ersten haben die Leute bereits darauf hingewiesen, wie man diese Methode schreibt. Beachten Sie, dass normale Methodennamen in Java normalerweise mit dem ersten Buchstaben in Kleinbuchstaben geschrieben werden.
Zweitens ändern Sie niemals den Wert von int1
, sodass Sie das LSB der Eingabe in einer engen Schleife ausgeben. Versuchen Sie etwas wie:
Erläuterung:
Dann werden Sie bemerken, dass Sie die Ziffern in der "falschen Reihenfolge" drucken - es ist natürlicher, sie MSB zu LSB gedruckt zu haben. Sie geben rückwärts aus. Um das zu beheben, wirst du wahrscheinlich mit einer for
-Schleife besser dran sein und jedes Bit von MSB auf LSB überprüfen.
Die Idee für die for-Schleife wäre, jedes der 32 Bits im int zu betrachten, beginnend mit dem MSB, so dass sie von links nach rechts gedruckt werden. So etwas Ähnliches
%Vor% 1<<i
ist eine Verschiebung nach links. Ähnlich der rechten Verschiebung, aber in die andere Richtung. (Ich habe das überhaupt nicht getestet.)
Sobald Sie das zur Arbeit bringen, schlage ich als weitere Übung vor, dass Sie versuchen, dasselbe zu tun, aber die führenden Nullen nicht auszudrucken.
Für den Anfang haben Sie eine Methode in einer Methode deklariert. Die Hauptmethode ist die Methode, die beim Ausführen der Klasse zuerst ausgeführt wird. ParseInt nimmt einen String, während args ein Array von Strings ist, also müssen wir es nehmen der erste (0-basierte) Index des Arrays.
mod
ist kein gültiger Operator, die gewünschte Syntax war %
Sie können System.out.print
verwenden, um in derselben Zeile statt in println
Probieren Sie diese Korrekturen aus und lassen Sie mich wissen, wie Sie vorankommen:
%Vor%Hier ist ein kleiner Bittesting-Code, den ich für Android gemacht habe.
int myres = bitTest (7, 128);
%Vor%Beste Grüße Mikael Andersson
Tags und Links java syntax compiler-errors