1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

c++ dezimal - binärrechner

Discussion in 'Programmieren' started by serialz4u, Nov 11, 2009.

Thread Status:
Not open for further replies.
  1. serialz4u

    serialz4u Byte

    ich versuche ein programm in c++ zu schreiben. aber iwie kommen bei der ausgabe immer völlig komische zahlen heraus. ich kann ja mal den code posten. wär cool wenn jemand wüsste woher das kommt, mit diesen großen zahlen bei der ausgabe.

    Code:
    int main(int argc, char* argv[])
    {
    	int x=34; //Dezimalzahl die umgerechnet werden soll
    
    
    	int feld[8];
    
    	//Loesung
    	for (x; x== 0; x % 2)
        {
            feld[0] = x % 2;
            feld[1] = x % 2;
            feld[2] = x % 2;
            feld[3] = x % 2;
            feld[4] = x % 2;
            feld[5] = x % 2;
            feld[6] = x % 2;
            feld[7] = x % 2;
    	}
    
        std::cout << feld[0] << feld[1] << feld[2] << feld[3] << feld[4] << feld[5] << feld[6] << feld[7];
    
    
    	return 0;
    }
     
  2. daboom

    daboom Megabyte

    Die for-Schleife wird nicht ein einziges Mal durchlaufen, weil x ja initial nicht gleich Null ist. Au&#223;erdem &#228;nderst Du den Wert von x nirgends.

    Den Sinn derf Schleife verstehe ich ohnehin nicht, da sie ja in einem Durchlauf bereits das komplette Array f&#252;llt.

    Die komischen Zahlen, die rauskommen, sind genau die Werte, die dort gerade zuf&#228;llig im Speicher stehen. K&#246;nnen sich also durchaus von Ausf&#252;hrung zu Ausf&#252;hrung &#228;ndern.

    Entweder Du l&#228;sst die for-Schlefe ganz weg, w&#228;re aber &#228;u&#223;erst unelegant weil megam&#228;&#223;ig duplikater Code bei rauskommt.

    Oder Du baust die for Schleife um, in dem sie eine Variable i mit 0 initialisiert. Im Condition Teil pr&#252;fst Du dann entweder ob x gr&#246;&#223;er Null ist oder i kleiner als 8. Letzeres w&#228;re sicherer bei Zahlen gr&#246;&#223;er als 255 da sonst eine Access Violation passieren w&#252;rde. Allerdings kannst Du dann auch nur Zahlen bis 255 exakt umrechnen.
    Der Inkrement Teil teilt dann x immer durch 2 und weist das Ergebnis x wieder zu, also kurz:

    PHP:
    /= 2;
    Ansonsten ist das mit dem Modulo (oder Modulu oder wie jetzt, ich kanns mir einfach nicht merken :aua:) schon korrekt. Also Du weist den Teilungsrest von x und 2 dann einfach dem i'ten Arrayelement zu.

    Fertsch... ;)
     
  3. serialz4u

    serialz4u Byte

    habs inzwischen auch geschafft das ganze fertig zu bekommen. war im nachhinein iwie ein bisschen einfacher... immerhin :)


    danke für die hilfe
     
Thread Status:
Not open for further replies.

Share This Page