Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo ich hätte eine Frage.
Vorab ich bin Anfänger in Bereich JAVA
- ergebniss Null (if abfrage funktioniert nich)
- length medode gibt immer um 3 Zuviel aus warum ???
Java:
package DreieckVläche;
public class Test {
public static void main(String[] args) {
String dez = "00111000"; //56
int value = 0;
char one = 1;
System.out.println(dez.length()); // nur zum test aber Zahl immer um 3 zu hoch
for (int i =0; i < (dez.length());i++) {
System.out.println(dez.charAt(i)); // nur Test
if ("1" == dez.charAt(i)) {
value += (int)Math.pow(2,i);
}
}
System.out.println(value);
}
}
Danke für die rasche Rückmeldung.
ich würde den wert 8 erwarten es kommt aber 9
ich habe jetzt auch schon von "1" auf 1 aber wir kommt bei meinen Logarithmus kein sinnvoller Wert herraus.
Kann ich euch um etwas Bitten. wäre wirklich nett.
Meine aufgaben Stellung ist:
Schreiben sie eine Funktion die Einen String zerlegt in den ein beliebige Binärezahl steht und ermitteln sie den Dezimahlen wert und geben sie in aus.
- es muss nich als Funktion geschrieben sein das bekomme ich dann schon hin.
-Bitte zeigt mir dann auch noch jemand wie ich in normal Fall löst bzw. welchen Datentyp ich in Normalfall bei binär habe.
Erstmal Dein Code mit Code-Tags außenrum, damit das hier vernünftig angezeigt wird:
Java:
public class Test {
public static void main(String[] args) {
String dez = "00111000"; // 56
int value = 0;
char one = 1;
System.out.println(dez.length());
for (int i =0; i < (dez.length());i++) {
System.out.println(dez.charAt(i));
if ("1" == dez.charAt(i)) {
value += (int)Math.pow(2,i);
}
}
System.out.println(value);
}
}
Dazu ein paar Hinweise:
Mit "char one = 1" weist Du der Variablen one den Zahlenwert 1 zu. Du willst aber das Zeichen '1' zuweisen: char one = '1';
Es wurde ja schon gesagt, dass Du mit "1" == dez.charAt(i) versuchst, ein Zeichen mit einem String zu vergleichen. Mit der Änderung von 1. kannst Du schreiben "if (one == dez.charAt(i))". Wenn Du ohne Variable one auskommen willst, kannst Du auch direkt vergleichen "if ('1' == dez.charAt(i))"
Die Berechnung ist falsch: Du rechnest als wäre die Stelle ganz links die Einerstelle.
Wenn bei Dir dez.length() etwas anderes als 8 liefert, dann stimmt etwas mit Deinem dez nicht. Evtl. ein Leerzeichen am Anfang/Ende des Strings?