# zahl binär darstellen



## wpb (8. Dezember 2005)

hy leute!

also ich hab folgendes problem:

ich muss eine zahl (int) einlese, und diese in binärer Darstellung
ausgeben. 
Ich darf allerdings nur die Operatoren <<,&, usw. verwenden.

hab gedacht es könnte mit ein array (bool bin[8]) funktionieren.
das array sollt mit ner schleife durchlaufen werden, und die zahl immer mit &1 kontrolliert 
werden. anschließend mit << bitweises verschieben wieder kontrollieren, usw.

naja hat aber überhaupt nicht funktioniert. (bzw. ich habe probleme das auch in einem programmcode umzusetzen.) 

Kann wer helfen?


----------



## RedWing (8. Dezember 2005)

Hallo,

schau mal hier:


```
#include <stdio.h>

int main(){
    int a = 5;
    int i = 0;
    int int_bit_size = sizeof(int) * 8;
    for(; i < int_bit_size; i++){
        printf("%d", (a & 0x80000000) >> 31);
        a <<= 1;
    }
    printf("\n");
    return 0;
}
```

Gruß

RedWing


----------



## Nikolaj (9. November 2006)

Is zwar kein C sondern Java, aber der Code is ja ähnlich  


```
import java.io.*;

class binaer {
	// (Globale) Variablen
	// -------------------
	static String ergebnis;

	// Hauptprogramm (Test des Algorithmus, Main Funktion)
	// ---------------------------------------------------
	void mainFunction() throws Exception {

			// Aufruf des Algorithmus
			ergebnis = bin(0,"");
			// Ausgabe des Ergebnisses
			System.out.println(ergebnis);

	}
	// Unterprogramme (Implementierung des Algorithmus, Subfunktionen)
	// ---------------------------------------------------------------
	static String bin(int x, String ausgabe)
	{
		if (x==0)
		{
			return ausgabe;
		}
		else 
		{
			return bin((x/2),(x%2)+ausgabe);
		}
	}
	// Technisches Beiwerk
	// -------------------
	static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
	public static void main(String[] args) throws Exception {
			(new binaer()).mainFunction();
	}
}
```


----------

