Links und Funktionen
Sprachumschaltung

Navigationspfad


Inhaltsbereich

Programmbeispiel Zentralübung 2

Konvertierung einer natürlichen Zahl in Ihre Binärdarstellung

Java source code icon Umrechnung.java — Java source code, 3 KB (3294 bytes)

Dateiinhalt

/**
 * Demo Zentralübung 2, 27.10.10
 * 
 * Konvertierung einer natürlichen Zahl in Ihre Binärdarstellung
 * 
 * Benötigt die Klasse "Input" aus der 1. Übung
 * 
 * @author jost
 * 
 */
public class Umrechnung {

	/**
	 * Liest eine natürliche Zahl einlesen und deren Binär-Darstellung ausgeben
	 * 
	 * @param args
	 *            wird ignoriert
	 */
	public static void main(String[] args) {
		System.out.print("Bitte natürliche Zahl kleiner 512 eingeben: "); 
		int orgzahl;
		orgzahl = Input.readInt();
		
		System.out.print("1. Binärdarstellung: "); // Achtung, .print und nicht .println verwenden, um die gleich Ausgabezeile weiterzuverwenden.
		int ziffer;				
		int zahl = orgzahl;
		
		
		// 1. Variante,
		// wie am Beginn der 2. Zentralübung geschrieben, ohne Schleife
		ziffer = zahl / 256;
		zahl = zahl % 256;		
		System.out.print(ziffer);
		ziffer = zahl / 128;
		zahl = zahl % 128;		
		System.out.print(ziffer);
		ziffer = zahl / 64;
		zahl = zahl % 64;		
		System.out.print(ziffer);
		ziffer = zahl / 32;
		zahl = zahl % 32;		
		System.out.print(ziffer);
		ziffer = zahl / 16;
		zahl = zahl % 16;		
		System.out.print(ziffer);
		ziffer = zahl / 8;
		zahl = zahl % 8;		
		System.out.print(ziffer);
		ziffer = zahl / 4;
		zahl = zahl % 4;		
		System.out.print(ziffer);
		ziffer = zahl / 2;
		zahl = zahl % 2;		
		System.out.print(ziffer);
		ziffer = zahl / 1;
		zahl = zahl % 1;		
		System.out.print(ziffer);
		System.out.println(); // Ausgabezeile beenden
		
		System.out.print("2. Binärdarstellung: "); // Wiederherstellung des
		zahl = orgzahl;                             // Anfangszustandes
		
		
		// 2. Variante,
		// wie am Ende der 2. Zentralübung geschrieben, wie 1 nur mit Schleife
		int stelle;
		int exp = 8;		
		while (exp >= 0) {
			// stelle = 2 ^ exp // GEHT NICHT, da ^ in Java binäres XOR bedeutet
			stelle = (int) Math.pow(2, exp);
			ziffer = zahl / stelle;
			zahl = zahl % stelle;
			exp = exp - 1;
			System.out.print(ziffer);
		}
		System.out.println(); // Ausgabezeile beenden

		System.out.print("3. Binärdarstellung: "); // Wiederherstellung des
		zahl = orgzahl;                             // Anfangszustandes
		
		
		// 3. Variante,
		// benötigt keine Exponentation innerhalb der Schleife
		stelle = 256;
		while (stelle >= 1) {
			ziffer = zahl / stelle;
			zahl = zahl % stelle;
			stelle = stelle / 2;
			System.out.print(ziffer);
		}
		System.out.println(); // Ausgabezeile beenden

		System.out.print("4. Binärdarstellung: "); // Wiederherstellung des
		zahl = orgzahl;                             // Anfangszustandes
		
		
		// 4. Variante, zum knobeln
		// wie 3. Variante, nur ohne führende Nullen und für beliebig große Integer
		stelle = 2;
		while (stelle <= zahl)
		{
			stelle = stelle * 2;
		}		
		stelle = stelle / 2;
		while (stelle >= 1) {
			ziffer = zahl / stelle;
			zahl = zahl % stelle;
			System.out.print(ziffer);
			stelle = stelle / 2;
		}
		System.out.println(); // Ausgabezeile beenden
		
		
		// 5. Variante,
		// die Umwandlung geht natürlich auch direkt mit Bibliotheksfunktionen.
		// In der Praxis würde man diesen Weg wählen, da Bibliotheksfunktionen meist gut optimiert sind.
		String orgbin = Integer.toBinaryString(orgzahl);
		System.out.println("5. Binärdarstellung: " + orgbin);
	}

}

Artikelaktionen


Funktionsleiste