Differenz von a und b ohne Vorzeichen darstellen?
-
was spricht gegen:
if (a < b) diff = b - a; else diff = a - b;
?
-
net: Dass es eine Funktion namens abs gibt, die genau das tut.
-
Bashar schrieb:
net: Dass es eine Funktion namens abs gibt, die genau das tut.
Ich sprech mal für net: Aber nicht auf irgend einem Mikrokontroller, den net mal vor 15 Jahren programmieren musste. P.S. (choose randomly: C++, Linux, C#) ist schlecht.
:p
-
kingruedi schrieb:
Ich sprech mal für net: Aber nicht auf irgend einem Mikrokontroller, den net mal vor 15 Jahren programmieren musste. P.S. (choose randomly: C++, Linux, C#) ist schlecht.
:p
dem kann ich nichts mehr hinzufügen
-
Dann schreibt man sich eine Funktion (oder auf nem Steinzeit-µC ein Makro *g*) die (bzw. das) das tut.
-
Bashar schrieb:
Dann schreibt man sich eine Funktion (oder auf nem Steinzeit-µC ein Makro *g*) die (bzw. das) das tut.
...und die kann man ja 'abs()' taufen
-
net schrieb:
Bashar schrieb:
Dann schreibt man sich eine Funktion (oder auf nem Steinzeit-µC ein Makro *g*) die (bzw. das) das tut.
...und die kann man ja 'abs()' taufen
und dann sofort intrinsic machen.
wir sollten das am besten mal den compilerbauern vorschlagen.
-
Ich stimme net zu. Anfang wollte sicher wissen wie es funkt. Was abs() macht kann man auch in einer Hilfe oder bei Google nachlesen.
-
Bashar schrieb:
net: Dass es eine Funktion namens abs gibt, die genau das tut.
ich dachte sie gibt den betrag eines integers zurück und nicht den betrag der differenz zweier integers.
-
nore schrieb:
ich dachte sie gibt den betrag eines integers zurück und nicht den betrag der differenz zweier integers.
Das muss man nicht kommentieren, oder?
-
nore schrieb:
Bashar schrieb:
net: Dass es eine Funktion namens abs gibt, die genau das tut.
ich dachte sie gibt den betrag eines integers zurück und nicht den betrag der differenz zweier integers.
hast ja recht. ein 'abs' wär dann ungefähr sowas:
#define MEIN_ABS(a) (a<0 ? -a : a)
-
nore schrieb:
ich dachte sie gibt den betrag eines integers zurück und nicht den betrag der differenz zweier integers.
Der war gut.
-
ok, sorry. ich tu's nie wieder.
-
[code]
int abs(int a) {
return a&0x7FFFFFFF;
}
[quote]
-
Die Funktion macht die Annahme, dass
- int 32bit gross ist
- für negative Darstellung "sign- and magnitude" Darstellung verwendet wird.
Zumindest letzteres ist eher selten.