Delphi-PRAXiS
Seite 12 von 22   « Erste     2101112 1314     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Positive Zahlen in negative umwandeln (https://www.delphipraxis.net/123215-positive-zahlen-negative-umwandeln.html)

hathor 30. Okt 2008 22:24

Re: Positive Zahlen in negative umwandeln
 
WIR SOLLTEN FÜR DIESEN THREAD EIN NEUES FORUM GRÜNDEN UND JÄHRLICH EINEN PREIS VERGEBEN:

- Vorschläge für Namen, Konventionen, AGB willkommen!

Hador 31. Okt 2008 00:13

Re: Positive Zahlen in negative umwandeln
 
Zitat:

Zitat von Missionar
Gibt es da nicht etwas Performanteres, wie z. B.
Delphi-Quellcode:
procedure NEG(VAR Int: Integer);
assembler
  neg ACX;
end;

Wenn schon ASM, dann aber auch richtig. Bei folgender Funktion kommt immer eine negative Zahl heraus.
Das ganze ist natürlich hochoptimiert :mrgreen:
Delphi-Quellcode:
function Neg(i: Integer): Integer;
asm
  MOV EDX, EAX
  NEG EDX
  CMP EDX, EAX
  JAE @DUMDIDUM
  NEG EAX
  @DUMDIDUM:
    MOV EDX, EAX
    INC EAX
  @WUPPDI:
    DEC EAX
    MOV ECX, EAX
    NEG ECX
    CMP ECX, EDX
    JNE @WUPPDI
  @DIDUMDI:
    NOP
end;

markusj 31. Okt 2008 00:30

Re: Positive Zahlen in negative umwandeln
 
Zitat:

Zitat von Larsi
Wie wärs denn mit Mülleimer oder du splittest den Thread nachdem die erste wertvolle Antwort kam und tust den Rest weg oder schiebst in in K&T.

Ich wär mit so einer Aussage vorsichtig ... wenn du mich fragst, sollte man deinen "Beitrag" zum Thread rausnehmen und den Rest als Lehrbeispiel für a) Viele Wege führn nach Rom und b) Es geht immer komplizierter stehen lassen.
Im Gegensatz zu den meisten deiner Posts hat das ganze hier irgend einen Sinn - Du hast die meisten deiner 1,5k Posts dadurch generiert, dass du die Suchfunktion und Google (sowie den normalen Verstand und etwas Kreativität) übergangen hast. Fast alles hätte man mit entsprechender Eigeninitiative selbst herausfinden können!
Richtig interessant wird das natürlich dadurch, dass du andere für GLEICHES Verhalten kritisierst/tadelst.

Und jetzt raus aus diesem durchgeknallten Thread *waaaah*

mfG
Markus

Sherlock 31. Okt 2008 08:02

Re: Positive Zahlen in negative umwandeln
 
Die Kategorie könnte auch "Bewusstseinserweiterndes" heissen.

Sherlock

kalmi01 31. Okt 2008 09:24

Re: Positive Zahlen in negative umwandeln
 
Wie wärs mit Durchgknalltes ?

Und 1x im Jahr gibts dann einen Contest, so wie bei den C-Programmierern.

sirius 31. Okt 2008 09:29

Re: Positive Zahlen in negative umwandeln
 
Zitat:

Zitat von kalmi01
Wie wärs mit Durchgknalltes ?

Und 1x im Jahr gibts dann einen Contest, so wie bei den C-Programmierern.

Was ist denn das für ein Contest? Etwa: "Wer bekommt eine komplette Datenbankanwendung in eine Zeile?"

divBy0 31. Okt 2008 09:31

Re: Positive Zahlen in negative umwandeln
 
Zitat:

Zitat von sirius
Zitat:

Zitat von kalmi01
Wie wärs mit Durchgknalltes ?

Und 1x im Jahr gibts dann einen Contest, so wie bei den C-Programmierern.

Was ist denn das für ein Contest? Etwa: "Wer bekommt eine komplette Datenbankanwendung in eine Zeile?"

Wenn die Zeile lang genug ist... :-D :-D :-D

sirius 31. Okt 2008 09:33

Re: Positive Zahlen in negative umwandeln
 
Zitat:

Zitat von divBy0
Wenn die Zeile lang genug ist... :-D :-D :-D

Ich meinte "eine Zeile" == "ein Befehl"

Tyrael Y. 31. Okt 2008 09:37

Re: Positive Zahlen in negative umwandeln
 
Zitat:

Zitat von sirius
Zitat:

Zitat von divBy0
Wenn die Zeile lang genug ist... :-D :-D :-D

Ich meinte "eine Zeile" == "ein Befehl"

Delphi-Quellcode:
Application.Run();
;)

turboPASCAL 31. Okt 2008 09:58

Re: Positive Zahlen in negative umwandeln
 
@Hador, ich kenn mich nicht so aus mit Assembler.
Deswegen tüttel ich's mal nach Delphi, mit kleinen Änderungen um.

Delphi-Quellcode:
function Neg(EAX: Integer): Integer;
var
  EDX, ECX: integer;
label
  DUMDIDUM, WUPPDI, DIDUMDI;
begin
  EDX := EAX;          //   MOV EDX, EAX
  EDX := not EDX + 1; //   NEG EDX
  if EDX >= EAX then   //   CMP EDX, EAX
   goto DUMDIDUM;      //   JAE @DUMDIDUM
  EAX := not EAX + 1;  //   NEG EAX
  DUMDIDUM:            // @DUMDIDUM:
    EDX := EAX;        //   MOV EDX, EAX
    INC(EAX);          //   INC EAX
  WUPPDI:              // @WUPPDI:
    DEC(EAX);          //   DEC EAX
    ECX := EAX;        //   MOV ECX, EAX
    ECX := not ECX + 1; //   NEG ECX
    if ECX = EDX then  //   CMP ECX, EDX
      goto WUPPDI;     //   JNE @WUPPDI
  DIDUMDI:             // @DIDUMDI:
    Result := EDX;     //   NOPpen tun wir heute nich, nich ?
end;
Oder einfavh so:
Delphi-Quellcode:
function Neg(ToNegativateValue: Integer): Integer;
begin
  Result := not ToNegativateValue + 1;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 Uhr.
Seite 12 von 22   « Erste     2101112 1314     Letzte »    

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-2025 by Thomas Breitkreuz