AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vorzeichen entfernen

Offene Frage von "Flo.Hoe"
Ein Thema von Flo.Hoe · begonnen am 29. Aug 2007 · letzter Beitrag vom 31. Aug 2007
Antwort Antwort
Seite 1 von 3  1 23      
Flo.Hoe

Registriert seit: 28. Sep 2006
Ort: Berlin
73 Beiträge
 
Turbo C++
 
#1

Vorzeichen entfernen

  Alt 29. Aug 2007, 21:37
Hi,

Bis jetzt habe ich zum berechnen des Betrages immer folgenden Code benutzt:
Zahl:=sqrt(Zahl*Zahl) Ich schätze, dass es eine Geschicktere Lösung geben wird.
Welche könnte das sein?
Florian
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Vorzeichen entfernen

  Alt 29. Aug 2007, 21:38
ABS()
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#3

Re: Vorzeichen entfernen

  Alt 29. Aug 2007, 21:38
absoluterwert := Abs(-5); Achja: Uses System.

Edit Nachtrag: Ich komm mir heute langsam vor...
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Flo.Hoe

Registriert seit: 28. Sep 2006
Ort: Berlin
73 Beiträge
 
Turbo C++
 
#4

Re: Vorzeichen entfernen

  Alt 29. Aug 2007, 21:41
Danke. Genau danach hab ich gesucht.
Florian
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Vorzeichen entfernen

  Alt 29. Aug 2007, 22:17
uses System? O_o

Phoenix, war das ironisch gemeint? Wenn nein, System ist IMMER eingebunden.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#6

Re: Vorzeichen entfernen

  Alt 29. Aug 2007, 22:24
Ich bin heut einfach nicht mehr ganz wach...
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#7

Re: Vorzeichen entfernen

  Alt 29. Aug 2007, 22:25
Ich auch.
Ich bin heut einfach nicht mehr ganz wach... Rotating Eyes
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Vorzeichen entfernen

  Alt 29. Aug 2007, 22:48
die wurzel ziehen ist nicht umbedingt das beste für die cpu. ohne abs wäre eine Lösung zu schauen ob die Zahl < 0 ist und wenn dem der fall ist * -1 zu rechnen. bzw. einfach das minus vorranstellen (denn - + - ergibt +)
Delphi-Quellcode:
if zahl < 0 then
  zahl := -zahl;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Vorzeichen entfernen

  Alt 29. Aug 2007, 23:06
...wobei abs() um einiges schneller ist. Wenn der Compiler es inlinet (was er vermutlich tun wird), braucht es sogar nur 3 Assemblerbefehle (bei Integern, bei Float wäre es ein FPU-Befehl), und zwar ein cdq, ein xor und ein sub. Ein if und eine Subtraktion sind dadurch langsamer.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#10

Re: Vorzeichen entfernen

  Alt 29. Aug 2007, 23:06
Zitat von SirThornberry:
(denn - + - ergibt +)
achso? wusste ich noch gar nicht

kannte das nur als
- * - = +

da würde ja
-5 + -2

+7 ergeben, richtig? oder vielleicht +3...

das minus voranstellen macht ja auch ne multiplikation
sicher nur ein schreibfehler, aber wollte das nicht so stehen lassen...

ein etwas exotischer weg wäre sicher auch, das höchstwertige Bit auf 0 zu setzen

Gruß Frank
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz