Konvertieren von dezimal zu Binär in Java
Bin ich zu schreiben versucht, einen code, wandelt eine Zahl in eine Binärzahl um, und das ist, was ich schrieb. Es gibt mir paar Fehler in Eclipse, welches ich nicht verstehe.
Was ist falsch mit, dass? Irgendwelche anderen Vorschläge? Ich möchte lernen, und zu hören, um Kommentare für die Festsetzung es. Danke.
public class NumberConverte {
public static void main(String[] args) {
int i = Integer.parseInt(args);
public static void Binary(int int1){
System.out.println(int1 + "in binary is");
do {
System.out.println(i mod 2);
} while (int1>0);
}
}
}
Fehlermeldungen:
- Die Methode
parseInt(String)
in der ArtInteger
ist nicht anwendbar für die Argumente (String[]
) - Mehrere Marker auf dieser Linie
- Syntax error on token "
(
", ; expected - Syntax error on token "
)
", ; expected void
ist ein Ungültiger Typ für die variableBinary
- Syntax error on token "
- Mehrere Marker auf dieser Linie
- Syntax error on token "mod", invalid AssignmentOperator
- Syntax error on token "mod", invalid AssignmentOperator.
- können Sie schreiben, was Sie Ihre Eingabe war, und auch, was der Fehler war, hilft immer die Dinge beschleunigen
- danke für den Kommentar. sicher, 1.Die Methode parseInt(String) in den Typ Integer ist nicht anwendbar für die Argumente (String[]) 2.Mehrere Marker in diesem line - Syntax error on token "(", ; expected - Syntax error on token ")", ; expected - void ist ein Ungültiger Typ für die variable Binäre 3.Mehrere Marker in diesem line - Syntax error on token "mod", invalid AssignmentOperator - Syntax error on token "mod", invalid AssignmentOperator.
- Das nächste mal, fügen Sie die Fehlermeldungen direkt auf die Frage (gibt es einen Bearbeiten-link dort). Ich Tat dies für Sie jetzt.
- Es gibt keine dezimalen hier. Der Eingang ist schon binäre.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Integer.toBinaryString(int) sollte den trick tun !
Und durch die Art und Weise, korrigieren Sie die syntax, wenn du mit Eclipse-ich bin sicher, er beschwert sich über eine Menge Fehler.
Arbeiten code :
Vielleicht wollen Sie nicht zu verwenden
toBinaryString()
. Sie sagte, dass Sie lernen, im moment, so können Sie es selbst so:Ich schlage vor, Sie bekommen Ihr Programm zu kompilieren, die als erste in Ihrer IDE. Wenn Sie keine IDE verwenden ich schlage vor, Sie bekommen einen freien. Dies wird Ihnen zeigen, wo Ihre Fehler sind und ich schlage vor, Sie korrigieren die Fehler, bis es kompiliert wird, bevor worring darüber, wie es zu verbessern.
Gibt es zwei wesentliche Probleme, die Sie angehen müssen:
Für die ersten Menschen haben bereits darauf hingewiesen, wie zu schreiben, dass Methode. Beachten Sie, dass normale Methodennamen in java werden normalerweise in Großbuchstaben geschrieben, wobei der erste Buchstabe kleingeschrieben.
Für die zweite, du wirst nie ändern Sie den Wert von
int1
, so werden Sie am Ende den Druck der LSB der Eingang in eine enge Schleife. Probieren Sie etwas wie:Erklärung:
Dann werden Sie feststellen, dass Sie drucken die Ziffern in der "falschen Reihenfolge" - es ist viel natürlicher, Sie drucken zu MSB zum LSB. Du bist der Ausgabe in umgekehrter. Um das zu beheben, werden Sie wahrscheinlich besser dran mit einem
for
Schleife, die überprüfung jedes bit von MSB zu LSB.Die Idee für die for-Schleife wäre zu schauen, jedes der 32 bits in int, beginnend mit dem MSB, so dass Sie gedruckt sind, von Links nach rechts. So etwas
1<<i
ist eine Verschiebung nach Links. Ähnlich wie die shift-rechts, aber in die andere Richtung. (Habe ich noch nicht getestet ist.)Sobald Sie bekommen, dass, um zu arbeiten, schlage ich als eine weitere übung, die Sie versuchen, das gleiche zu tun, aber nicht drucken Sie die führenden Nullen.
Für den Anfang haben Sie erklärt eine Methode innerhalb einer Methode. Die wichtigste Methode ist die Methode, die ausgeführt wird, wenn Sie führen Sie Ihre Klasse. ParseInt nimmt eine Zeichenfolge, in der Erwägung, dass args ist ein Array von strings, so dass wir müssen nehmen Sie die erste (0-basierten) index des Arrays.
mod
ist kein Gültiger operator, die syntax, die Sie wollte, war%
Können Sie
System.out.print
zu drucken, auf der gleichen Linie, anstattprintln
Versuchen Sie diese Korrekturen, und lassen Sie mich wissen, wie Sie auf:
java NumberConverte 32
Hier ist eine kleine bittesting code habe ich für Android.
int myres = bitTest(7, 128);
Beste Grüße
Mikael Andersson
Gut, ich nehme an, Sie wissen über Fehlermeldungen. Zweitens, dein code ist öde (syntax und die Einrückung nicht korrekt ist). Ich würde vorschlagen, den code unten
Hoffe, es hilft!!