Problem mit Int-Char-Umwandlung



  • Hi,
    Ich habe ein kleines Programm geschrieben was einen Integerwert in eine Binear-Zahl umwandeln soll. Das funktioniert auch schon fast nur das die Binear-Zahl (aus mangelnden wissen) nicht in einen String oder eienen Int-Wert sondern in ein Int-Array geschrieben wird, das zusätzlich auch noch falschrum ist.
    Da man, wen man zwei Integer adiert (z.B.: inte[1]+inte[2]), die Summe erhält und nicht die beiden Zahlen aneinander gereit, so wie ich es bräuchte für den Binär-Wert , wollte ich das Int-Array in ein umgedrehtes Char-Array umwandeln doch mit der sprint-Funtion scheint das nicht zu gehen.

    #include <iostream>
    #include <cmath>
    #include <cstdio>
    #include <string>
    using namespace std;
    
    class binary
    {
    
    int zubinear(float dezi)
    {
        int ausl[255];
        char str_ausl[255]; 
        string aus;
    
    	for(int counter=0;dezi >= 1;++counter)
    	{
    	    if (counter > 0&&dezi>1&&dezi != (int)dezi) 
    		{
    		dezi= ceil(dezi);
    		--dezi;
    		}
    
    		//Gerade oder nicht?
    		if (dezi/2 == (int)dezi/2)
    	    ausl[counter]=0;
    		else 
    	    ausl[counter]=1;
            dezi /= 2;
    
    		cout <<ausl[counter]<< flush;
    	} 
    
    	int coun = counter; 
    
    	for(int count=0;count <= counter;++count)
    	{
    		sprintf(reinterpret_cast<char*>(str_ausl[coun--]), "%c", ausl[count]);
    	}
    
    	return 0; 
    }
    
    };
    
    int main()
    {
    
        binary one;
    	int zahl = 0;
    	cin >> zahl ;
    	one.zubinear(zahl);
    
    	return 0;
    }
    

    Kan mir jemand einen Vorschlag machen wie diese Aufgabe zu lösen ist?

    mfg Xclear



  • Jetzt übertreibs aber mal net.

    unsigned value;
    cin >> value;
    
    string str;
    do {
    	str.insert(str.begin(), value%2 + '0');
    } while(value /= 2);
    cout << str;
    


  • lol, ich schreib hundert Zeielen und es funktioniert nicht und du schreibst 7 und es geht sofort, echt stumpf...
    bin halt noch Anfänger 😃


Anmelden zum Antworten