Rechnen mit AVR

Gast #1950884
Lesenswert?

Hallo ich habe nur kurz eine kleine, simple Frage...

Und zwar geht es darum das ich z.b.:

L12 = L1-L2

berechnen will. Nun soll das Ergebnis aber auf jeden Fall IMMER positiv 
sein, egal ob L1 oder L2 größer ist.

Gibt es das irgendeinen Befehl, der das ganze in "Betrag" setzt oder 
kann ich L12 einfach als unsigned int wählen? Damit dürften doch auch 
nur positvie Werte ausgegeben werden oder erhält man dann im Falle einer 
negativen Zahl Mist?

Desweiteren noch ne Frage:

Könnte ich eine if-Schleife so aufbauen?

if((-100<L1<100)&&(-100<L1<100))

...dann tue das!


Danke schonmal im Voraus!

Gruß Sacx
#1951071
Lesenswert?

sacx schrieb:

> Die zweite Bedingung bei if sollte eigentlich L2 sein.
> Wäre das dann grundsätzlich möglich?

Grundsätzlich ja. ABer nicht so wie du das geschrieben hast

Ein Vergleichsoperator hat einen linken Operanden und einen rechten 
Operanden. Punkt.
Ein Operand kann nicht gleichzeitig für eine Vergleichsoperation als 
rechter Operand und für einen anderen Vergleichsoperation als rechter 
Teil fungieren.

Aber man kann natürlich die Ergebnisse von 2 Vergleichen mit zb einem 
logischen UND (&&) oder einem logischen ODER (||) miteinander verknüpfen

  if( (-100 < L2) && ( L2 < 100) )


> Versuche es mal mit

einem C-Buch.
Ganz dringend!

Denn das was du geschrieben hast

   if( -100 < L2 < 100 )

ist nämlich syntaktisch richtiges C. Das ist kein Syntaxerror und dieses 
Geschriebene hat tatsächlich auch eine Bedeutung. Aber nicht die, die du 
ihm beimisst, sondern es macht etwas ganz anderes als du vermutest.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren