# binärcode von negativen und positiven ganzen zahlen



## newbee (21. November 2003)

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


```
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
     }
}
```


----------



## NetPerformance (21. November 2003)

Huhu.. 

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

Gruß
Aaron 


```
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));
   }
}
```


----------



## newbee (22. November 2003)

echt gutes programm. hilft mir sehr weiter.
vielen dank!


----------

