Konvertierung dezimal->binär



  • Hallo Welt

    Weil Zahlen im Computer ja binär dargestellt werden, habe ich mal eine Funktion geschrieben, die beliebige Zahlen in binär umrechnet, so dass man jetzt statt

    int x = 10;
    

    das Folgende schreiben kann:

    int x = tobinary(10);
    

    Es soll u.a. helfen, die Compilezeit zu verkürzen, weil der Compiler die Zahl nicht selbst umwandeln muss.

    hier die entsprechende Funktion:

    // converts a decimal number to a binary number
    template<typename type>
    type tobinary(type number)
    {
    	// stores result
    	type binary_result = 0;
    	// digit that is processed
    	type digit_base = 1;
    	while(number)
    	{
    		// get decimal digit
    		int digit = number % 10;
    		number /= 10;
    		// read bits 0 bis 3 with values 1, 2, 4, 8
    		for(int i = 0; i < 4; ++i)
    		{
    			// add 1, 2, 4, 8 digits to the binary result
    			if(digit & (1 << i))
    				binary_result += digit_base * (1 << i);
    		}
    		// next decimal digit
    		digit_base *= 10;
    	}
    	return binary_result;
    }
    

    Mit negativen Zahlen kommt sie vermutlich noch nicht klar, ich habe sie erstmal für positive Zahlen geschrieben und möchte mal wissen, was ihr davon haltet ^^



  • Toll - willkommen im April. 😉



  • Bergren schrieb:

    Es soll u.a. helfen, die Compilezeit zu verkürzen, weil der Compiler die Zahl nicht selbst umwandeln muss.

    Ein template benutzen um die Compilezeit zu verkürzen. *LOL* tolle Idee 🤡



  • Wow wie toll. Wie wars wenn du anwendungen scgreibst in die du auch deine einganen binär machen must? Das spart noch mehr rechenzeit!!!!!!

    Schon mal gefragt was der Compiler mit der 10 macht die du deiner funktion übergibst?

    Ich weiss ja net ob das ein Witzt sein soll aber wenn nicht solltest du mal dein grundlegendes Wissen mal ein wenig auffrischen.



  • Ich weiss ja net ob das ein Witzt sein soll

    Es war tatsächlich, wie nman schon vermutetete ein Aprilscherz, und zwar ein schlechter.



  • Wust ichs doch


Anmelden zum Antworten