Rechenoperation optimieren



  • Hallo, ich habe eine ganz simple Frage.
    Ich programmiere einen Mikrocontroller und dort muss viel mit Bits gerechnet werden.
    Ich habe folgende zwei Zeilen, die ich gerne in eine einzige packen würde,
    das muss doch eig. möglich sein, oder täusche ich mich?

    e = tup1 + (~tup2 + 1);     
    e = (~e) + 1;
    
    e = (tup1 + (~tup2 + 1))~ + 1;     // Das hier geht wohl schlecht...
    

    Ist da was zu machen? Danke schon mal!



  • Okay habs...

    e = ~(tup1 + (~tup2 + 1)) + 1;     // Die Negation muss vor die Klammer...
    


  • Und warum soll die neue Version schneller als die alte sein? Gibt wahrscheinlich den genau gleichen Assembly Code 😉

    *Edit
    Oder hast du mit "optimieren" nicht Performance gemeint?



  • Dir ist bewusst, dass dein Code nichts anderes als

    e = tup2 - tup1;
    

    berechnet?



  • blessembly schrieb:

    Dir ist bewusst, dass dein Code nichts anderes als

    e = tup2 - tup1;
    

    berechnet?

    👍

    Der Klassiker - Einerkomplement +1 und das gleich mehrfach ...


Log in to reply