Umrechnung von Binär und dezimal



  • Hallo,

    ich bin derzeit im 1. Semester eines Mechatronikstudiums und habe Probleme bei einem Programm, bzw. der letzten Funktion.

    Eine beliebige Stelle der Binärzahl soll entweder auf 0 oder 1 gesetzt werden und erneut als Dezimalzahl ausgegeben werden.

    Hier hänge ich jetzt allerdings fest und sehe meinen Fehler nicht. 😕

    int main()
    {
    	unsigned int Eingabezahl = 0, Ausgabezahl = 0, Ergebnis = 0, Zahl = 1, Veraenderungszahl = 0, Veraenderungswert = 0, Zwischenwert = 0, b = 0;
    
    	int i = 0;
    
    	printf("Geben Sie eine Zahl ein \n");
    	scanf("%d", &Eingabezahl);
    	printf("%d:", Eingabezahl);
    
    	Zwischenwert = Eingabezahl;
    	for (i = 0; i < sizeof(int) * 8; i++)
    	{
    		if ((Eingabezahl & (1 << i)) > 0)
    			Ergebnis++;
    	}
    
    	for (i = (sizeof(Eingabezahl) * 8 - 1); i >= 0; i--)
    	{
    
    		if ((Eingabezahl & (1 << i)) > 0)
    
    			printf("1");
    
    		else
    
    			printf("0");
    
    	}
    
    	printf("\n\nDas Bitmuster hat %d Einsen\n", Ergebnis);
    
    	printf("Welches Bit (0-31 von rechts beginnend) soll geaendert werden?\n");
    	scanf("%d", &Veraenderungszahl);
    
    	printf("Auf welchen Wert (0 oder 1) soll das Bit gesetzt werden?\n");
    	scanf("%d", &Veraenderungswert);
    
    	if (Veraenderungswert == 0)
    	{
    		Ausgabezahl = Zwischenwert &~(Veraenderungszahl);
    	}
    	else if (Veraenderungswert == 1)
    	{
    		Ausgabezahl = Zwischenwert | ~(1 << Veraenderungszahl);
    	}
    
    	printf("%d", Ausgabezahl);
    
    	for (b = (sizeof(Ausgabezahl)); b >= 0; b--)
    	{
    		if ((Ausgabezahl & (1 << b)) > 0)
    
    			printf("1");
    
    		else
    
    			printf("0");
    	}
    
    	return 0;
    }
    

    Ich hoffe ihr habt vielleicht Tipps für mich 🙂



  • Hallo,

    vergleiche deine Bitoperationen mal mit C/C++ Bit-Operationen.



  • Hallo

    kommen Sie doch einfach in meine Vorlesung, fragen Sie die Tutoren oder die Betreuer im Praktikum. Wenn Sie sich Ihr Verfahren an einem einfachen Beispiel verdeutlichen (auf einem Blatt Papier!), werden Sie schnell feststellen, wo der Fehler liegt.

    Ihr Prof. 👍



  • Bitzähler schrieb:

    Hallo

    kommen Sie doch einfach in meine Vorlesung, fragen Sie die Tutoren oder die Betreuer im Praktikum. Wenn Sie sich Ihr Verfahren an einem einfachen Beispiel verdeutlichen (auf einem Blatt Papier!), werden Sie schnell feststellen, wo der Fehler liegt.

    Ihr Prof. 👍

    LOL. 😃


Anmelden zum Antworten