binärcode von negativen und positiven ganzen zahlen

newbee

Mitglied
hallo ich will den binär code einer zahl ausgeben. habe dazu schon follgendes programm geschrieben mit der binarytostring methode aber das muss doch auch mit einer for schleife gehen. das der immer die zahl durch 2 teilt und schaut ob gerade oder nicht und dann eine null bzw eins ausgibt

Code:
import java.io.*;

public class Binaer {
    public static void main(String[] args)
    throws IOException
    {String x; 
     int a;
     BufferedReader din = new BufferedReader(new InputStreamReader(System.in));
     try {   
     System.out.print("Eingabe: ");// eingabe aufforderung
 
     a = Integer.parseInt(din.readLine()); 
     x = Integer.toBinaryString(a);// methode zur ausgabe des binären codes
     System.out.print(x); }
     catch (NumberFormatException falsch)       // verwirft eingabe von buchstaben                
     {System.out.println("Falsche Eingabe, bitte nur Zahlen"); }// asugabe der fehlermeldung
     }
}
 
Huhu..

Hier kannst du dir meine Version anschauen ..
Ìst aber leider nur für positive Zahlen !

Gruß
Aaron

Code:
import java.io.*;

public class DezimalBinaer
{
   static final int MAX = 31;

   static int liesInt() throws IOException
   {
	  BufferedReader Tastatur = new BufferedReader (new InputStreamReader(System.in));
	  String eingabe;

	  System.out.print("Geben Sie bitte eine natürliche Zahl ein : ");
	  eingabe = Tastatur.readLine();
	  Tastatur.close();
	  return Integer.parseInt(eingabe);
   }


   static int[] konvertiere(int dezimal)
   {
	  int[] binaer = new int[MAX];
	  int stelle = 0;

	  for (int i = 0; i < MAX; i++) 
      
	  binaer[i] = 0;

	  while (dezimal > 0)
	  {
		 binaer[stelle] = dezimal % 2;
		 dezimal /= 2;
		 stelle++;
	  }

	  return binaer;
   }


   static void ausgeben(int[] binaerzahl)
   {
	  int ersteZiffer = binaerzahl.length-1;

	  // Fuehrende Nullen ueberlesen
	  while ((ersteZiffer > 0) && (binaerzahl[ersteZiffer] == 0))
		 ersteZiffer--;

	  System.out.print("\nDie Binaerdarstellung lautet : ");
	  for (int i = ersteZiffer; i >= 0; i--)
		 System.out.print(binaerzahl[i]);
	  System.out.println();
   }


   public static void main(String[] argv) throws IOException
   {
	  int n;

	  n = liesInt();
	  if (n < 0)
	  {
		 System.out.println("n muss >= 0 sein");
		 System.out.println("Das Programm wird abgebrochen");
	  }
	  else
		 ausgeben(konvertiere(n));
   }
}
 
Zuletzt bearbeitet:
Zurück