Anzeige:
Ergebnis 1 bis 5 von 5

Thema: [C] Schnelle Überprüfung des Betrags einer Zahl?

  1. #1
    Registrierter Benutzer Avatar von Boron
    Registriert seit
    07.01.2002
    Beiträge
    827

    [C] Schnelle Überprüfung des Betrags einer Zahl?

    Hallo zusammen,

    wie kann man denn ganz fix überprüfen, ob der Betrag einer Zahl größer oder kleiner einem bestimmten Wert ist?
    Code:
    int a, b;
    int differenz;
    ...
    differenz = a - b;
    /* wenn Betrag von differenz < als 5 */
    if( |differenz| < 5 )
    { doSomething(); }
    Gibt es was besseres als:
    Code:
    if( differenz<5 && differenz>-5 )
    Gruß Boron (der sich oft wegen mieser Rechtschreibung anderer die Augen reiben muss)

    LINUX IS LIKE AN INDIAN TENT: NO GATES, NO WINDOWS AND AN APACHE INSIDE!
    Hardware Monitoring unter Linux -> http://santafu.sourceforge.net (Temperaturen, Lüfterdrehzahlen und Spannungen)

  2. #2
    Registrierter Benutzer Avatar von Boron
    Registriert seit
    07.01.2002
    Beiträge
    827
    Hat sich erledigt.
    Code:
    if( differenz < 0 ) {
       differenz = -differenz;
    }
    Und schon haben wir den Betrag.
    Der Compiler macht da verdammt wenig Assembleranweisungen daraus. also schnell genug.

    (Erst denken, dann im forum fragen )
    Gruß Boron (der sich oft wegen mieser Rechtschreibung anderer die Augen reiben muss)

    LINUX IS LIKE AN INDIAN TENT: NO GATES, NO WINDOWS AND AN APACHE INSIDE!
    Hardware Monitoring unter Linux -> http://santafu.sourceforge.net (Temperaturen, Lüfterdrehzahlen und Spannungen)

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Code:
     if (fabs(zahl)<5.0) // für fließkomma
    if (abs(zahl)<5) // für integer

  4. #4
    Registrierter Benutzer Avatar von Boron
    Registriert seit
    07.01.2002
    Beiträge
    827
    Oha, gibt es also doch schon .

    Nur hier bei uns im Embedded Bereich gibt es keine Bibliotheksfunktionen.
    Trotzdem Danke.
    Gruß Boron (der sich oft wegen mieser Rechtschreibung anderer die Augen reiben muss)

    LINUX IS LIKE AN INDIAN TENT: NO GATES, NO WINDOWS AND AN APACHE INSIDE!
    Hardware Monitoring unter Linux -> http://santafu.sourceforge.net (Temperaturen, Lüfterdrehzahlen und Spannungen)

  5. #5
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Nun, fabs und abs sollte bei -O2 eigentlich in die entsprechenden Prozessoropcodes übersetzt werden, so die CPU denn einen internen abs-Befehl hat.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •