Positíve zahl in negative Zahl umwandeln?
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
oder
a *= -1
-
würde mich mal interessieren, welche art am schnellsten ist....
-
Für Ganzzahlen wird wohl auf x86ern der Befehl NEG genutzt.
(Umkippen eines Bits.)
Also sehr schnell.Die andere Variante wäre dann IMUL.
Aber der Compiler wird´s schon (weg)optimieren. -Hoffentlich *g*-
-
SeppSchrot schrieb:
Für Ganzzahlen wird wohl auf x86ern der Befehl NEG genutzt.
(Umkippen eines Bits.)
Also sehr schnell.Die andere Variante wäre dann IMUL.
Aber der Compiler wird´s schon (weg)optimieren. -Hoffentlich *g*-
x86 nutzt 2er-komplement und nicht signed magnitude, also nicht einfach bloss kippen eines bits
ich schätze mal, dass beide varianten denselben code erzeugen; wenn compiler sachen wie a *= 32 in shiftoperationen umsetzen, kann das andere auch nicht so schwer sein.
-
also als Vollprofi kann man auch sagen
anegativ = a - (a * 2);
also quasi sowas
if (a > 0)
{
b = a - (a * 2)
}
else
{
b = a + (a * 2)
}
Sry, musste jetzt mal sein
-
DocJunioR schrieb:
also als Vollprofi kann man auch sagen
anegativ = a - (a * 2);
also quasi sowas
if (a > 0)
{
b = a - (a * 2)
}
else
{
b = a + (a * 2)
}
Sry, musste jetzt mal seinrofl, das kenn ich doch irgendwoher
-
DocJunior: Schade daß der Code für negative a falsch ist. :p
Mathe is halt schwer... aber hier muß man eigentlich garnix denken.
-
DocJunioR schrieb:
anegativ = a - (a * 2);
also b = a + (a * 2)Unglaubliche Logik.
-
double x = ... String text = String.valueOf( x ); if( text.startsWith( "-" )){ text = text.subString( 1 ); } else{ text = "-" + text; } x = Double.parseDouble( text );