Zahl in einzelne Variablen seperieren



  • Hallo Leute,

    ich steh voll auf dem Schlauch.
    Muss für unser FH Projekt was machen.

    Ich kriege analoge Signale welche über einen AD wandler als binäre codes in mein System kommen.
    Dazu habe ich ein Programm geschrieben , welches die binär Zahlen dann in Dezimalzahlen umwandelt.
    JEtzt hab ich z.B.

    Zahl= 245.

    Meine Ergebnisse will ich auf 7-Segment-Anzeigen "präsentieren".
    Meine Idee war es die Zahl irgenwie zu seperieren sodas ich
    a=2
    b=4
    c=5
    habe und ich jede Zahl einer Segmentanzeige zuweise.
    Mir fällt aber nicht ein wie ich das anstellen könnte.

    EDIT:

    Habs hingekriegt , andere Frage: Mit integern klappt es problemlos , kann man ne float Zahl seperieren also einmal den teil vor udn einmal nach dem komma?

    Grüße

    Mario


  • Mod

    Habs hingekriegt , andere Frage: Mit integern klappt es problemlos , kann man ne float Zahl seperieren also einmal den teil vor udn einmal nach dem komma?

    Das geht eigentlich auf die gleiche Art und Weise und sollte offensichtlich sein, wenn man es fuer Integer hat. Zumindest bei der "normalen" Art und Weise (Link: Stellenwertsystem), die man in der Grundschule beigebracht bekommt (und dann im Falle der meisten Leute gleich wieder vergisst 😉 ). Das laesst mich ahnen, dass du dir da irgendeine komische Methode ausgedacht hast fuer die Integer. Was hast du gemacht?



  • MarioGTI schrieb:

    kann man ne float Zahl seperieren also einmal den teil vor udn einmal nach dem komma?

    Dafür gibt es modf.

    int main(void) {
    double part, d = 123.456, frac = modf(d,&part);
    printf("%f %f %f",d,part,frac);
    
    return 0;
    }
    

    http://ideone.com/2OgpyL



  • Danke dafür , mein Code war folgender
    Sorry für die blöden variablen namen 😃

    #include <stdio.h>
    
    int segmentieren(int x)
    
    {
    
    	int ausgabe[4];
    	int vor[4];
    	int i;
    	int b=1000;
    	vor[0]=x;
    
    	for(i=0; i<=3; i++)
    		{
    			vor[i+1] = vor[i]%b;
    
    			ausgabe[i] = (vor[i]-vor[i+1])/b;
    				b=b/10;
    				printf("\n%d \n",ausgabe[i]);	
    
    		}	
    
    }
    

Log in to reply