![]() |
Re: Function für Vorzeichen?
Zitat:
|
Re: Function für Vorzeichen?
Zitat:
Delphi-Quellcode:
function Sign(i: Integer): Integer;
begin Result := (0 - (i shr 31)) or 1; end; |
Re: Function für Vorzeichen?
Hallo Cöster!
Zitat:
Zitat:
@Dax: so geht's :thumb: Gruß Hawkeye |
Re: Function für Vorzeichen?
Sondern? Natürlich, ich bekomme nicht - oder +, aber -1 oder +1. Das ist auch alles, was ich will. Ich brauch den Befehl "hänge an a das Vorzeichen von b dran" und dafür schreib ich dann
a := sign(b)*a; Wie lässt sich das if denn in der Funktion verhindern (ohne Assembler-Code)? Mehr als result := value/abs(value) fällt mir nicht ein. Aber das soll ja noch langsamer sein, als ein if. Wie kann man das denn ohne if (und ohne Assembler) schreiben? :gruebel:[/quote] Du bekommst bei einer 0 eine +1 raus. Eine 0 hat aber kein Vorzeichen, folgerichtig muss also bei einer 0 eine 0 rauskommen. Das geht natürlich dann nicht ohne if, aber mit einem statt 2. |
Re: Function für Vorzeichen?
Moin Zusammen,
ist ja schön, dass ihr so viele Vorschläge macht, wie man das bei integer-Werten machen kann, Cöster sucht das aber für Real ;-) |
Re: Function für Vorzeichen?
Er kann ihn ja vorher truncaten.
|
Re: Function für Vorzeichen?
Moin Manuel,
das dürfte nicht viel helfen, wenn der Wert zwischen -1 und +1 liegt. |
Re: Function für Vorzeichen?
Zitat:
Delphi-Quellcode:
function Sign(e: Extended): Integer;
begin Result := (0 - (e shr 79)) or 1; end; |
Re: Function für Vorzeichen?
Dax, diesmal muß ich dich enttäuschen - SHR erwartet einen ganzzahligen Operanden.
Zitat:
Zitat:
|
Re: Function für Vorzeichen?
Zitat:
Gings denn so?
Delphi-Quellcode:
function Sign(e: Extended): Integer;
type PExtendedRec = ^TExtendedRec; TExtendedRec = record case Integer of 0: (e: Extended); 1: (a: Array[0..9] of Byte); end; begin Result := (0 - (PExtendedRec(@e)^.a[0] shr 7)) or 1; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz