??? Wertebereich -128 bis 127, kein char, alle 50 Zähleinheiten etwas ausführen ???



  • Hallo Freunde,

    Ein System liefert mir einen Zahlenwert, der von -128 bis 127 geht. Bei einem Überlauf geht es von 127 bei -128 weiter und wird wieder positiver…
    Jetzt soll ich anhand der zur Verfügung gestellten Zahl sagen, ob ich 50 Zähleinheiten weiter liege oder nicht, beginnend bei 0. Wenn ja, soll eine bestimmte Funktion callAlarm() aufgerufen werden.
    Die Funtion, in welcher die Bearbeitung stattfindet, wird zyklisch aufgerufen. Die Werte ändern sich irgendwie, aber stets in aufsteigender Reihenfolge.
    Weiß jemand zufällig, wie ich das Problem lösen kann? Aber Achtung: Der Zahlenwert ist eine Integer-Variable, kein char! In einer anderen Anwendung wird dann der Bereich auf beispielsweise -200 bis 199 geändert.

    Viele Grüße von
    Zeh Mau



  • bei gleichem vorzeichen nimmste einfach die differenz 'abs(a-b)' und bei unterschiedlichen vorzeichen (im fall von -128...127) zählste vorher noch zur negativen zahl 256 dazu, so dass z.b. aus einer -128 eine +128 wird usw.
    und dann wieder 'abs(a-b)'. probier's aus, vielleicht reicht das ja schon.
    🙂



  • zieh einfach von beiden zu vergleichenden Zahlen die erste der beiden Zahlen ab.
    So ist die erste definitv null und die zweite kannst du dann auf == 50 prüfen.

    Du musst lediglich auf den Überlauf achten, dass der auch da berücksichtigt wird



  • Hallo wraparound-freak!

    Vielen Dank für den sehr wertvollen Tipp!!!

    Zeh Mau



  • zwutz schrieb:

    zieh einfach von beiden zu vergleichenden Zahlen die erste der beiden Zahlen ab. So ist die erste definitv null

    den trick muss ich mir merken. 😃
    🙂


Anmelden zum Antworten