Erste Schritte Ausgabe ist Fehlerhaft

Die Ausgabe sollte eigentlich alle 8 Zeichen einen Tab setzen und nicht 000 00000000 00000001 10000001 11001. Könnte mir jemand helfen.Danke im Vorraus.???:L
 

Anhänge

  • dcdcdc.PNG
    dcdcdc.PNG
    27,7 KB · Aufrufe: 48
HIer ist der Code . Konnstest du mir helfen , den String bin so zu spliten das in jeden gespiteten Bereich nur 8 Zeichen sind. Danke im vorraus.
Java:
public class Bin {
	private static java.util.Scanner scanner;
	public static void main(String[] args) {
		long a;	
		int count = 0;
			scanner = new java.util.Scanner (System.in);
			System.out.print("Eingabe der Dezimalzahl :  ");
			a = scanner.nextLong();
		    String bin = "";
            while (a > 0) {
                if (a % 2 == 0)
                    bin = bin + "0";
                else
                    bin = bin + "1";
                a /= 2;
            }
            for(count = bin.length(); count < 32; count++){
            	bin = 0 +bin;
            } 
            System.out.println(bin);
      }
}
 

Anhänge

  • Code2.jpg
    Code2.jpg
    54,7 KB · Aufrufe: 28
War keine große Sache 🙂

Beim Zusammensetzen vom binären String war noch ein kleiner Fehler.

Code:
public class Bin {
	private static java.util.Scanner scanner;

	public static void main(String[] args) {
		long a;
		int count = 0;
		scanner = new java.util.Scanner(System.in);

		System.out.print("Eingabe der Dezimalzahl :  ");
		a = scanner.nextLong();

		String bin = "";

		while (a > 0) {
			if (a % 2 == 0)
				bin = "0" + bin;
			else
				bin = "1" + bin;
			a /= 2;
		}

		for (count = bin.length(); count < 32; count++) {
			bin = 0 + bin;
		}

		for (int i = 0; i < bin.length(); i++) {
			System.out.print(bin.charAt(i));

			if ((i + 1) % 8 == 0) {
				System.out.print("\t");
			}
		}
	}
}
 
Das liegt an der Verschiebung des Index. Der String beginnt bei Zeichen 0.
0 modulo 8 = 0 also würde nach dem ersten Zeichen (Index 0) bereits ein Tabulator hinzugefügt werden. Also addiert man einfach +1 und das erste Zeichen wäre dann entsprechend der normalen Zählweise an Position 1.
 

Zurück
Oben