Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C-Übersetzg: if(!(i%2)) (https://www.delphipraxis.net/90971-c-uebersetzg-if-i2.html)

DGL-luke 26. Apr 2007 18:30


C-Übersetzg: if(!(i%2))
 
hallo,

folgendes saumäßiges C-Fragment:

Code:
int i;
...

if(!(i%2))
{

}
ich würd das mal übersetzen mit:

Delphi-Quellcode:
if i mod 2 = 0 then
stimmt das?

EDIT: vertippselt.

DGS 26. Apr 2007 18:34

Re: C-Übersetzg: if(!(i%2))
 
Zitat:

Zitat von DGL-luke
ich würd das mal übersetzen mit:

Delphi-Quellcode:
if i mode 2 = 0 then
stimmt das?

beinahe.

Delphi-Quellcode:
if i mod 2 = 0 then
So lautet der Befehl richtig. Sonst stimmt es.

bigg 26. Apr 2007 18:43

Re: C-Übersetzg: if(!(i%2))
 
Hätte es jetzt so übersetzt:

Delphi-Quellcode:
var i: Integer;
begin
  if not(i mod 2) then
  begin
    {...}


  end;
end;


Gruß bigg.

DGS 26. Apr 2007 18:46

Re: C-Übersetzg: if(!(i%2))
 
Die Übersetzung wäre 1zu1 übersetzt. Delphi könnte da aber Probleme mit dem Typ Integer <-> Boolean bekommen. Habs allerdings noch nicht getestet wir er in if Abfragen auf integer reagiert.

Hintergrund ist, dass es in C einfach keinen Boolean gibt. Da gibt es nur die integer. 0 steht für false, alles andere für true.

bigg 26. Apr 2007 18:52

Re: C-Übersetzg: if(!(i%2))
 
In C gibt es keinen boolschen Werte? :shock:
Doch: bool!


PS: Mein Beispiel von oben funktioniert nicht ganz, müsste noch eine Bedingung mit ran gestellt werden.

jfheins 26. Apr 2007 18:52

Re: C-Übersetzg: if(!(i%2))
 
Man könnte auch if odd(i) then ... schreiben - ist noch einfacher :stupid:

3_of_8 26. Apr 2007 18:53

Re: C-Übersetzg: if(!(i%2))
 
Delphi-Quellcode:
asm
and eax 1
jnz @endif
end;

Meflin 26. Apr 2007 18:56

Re: C-Übersetzg: if(!(i%2))
 
Zitat:

Zitat von 3_of_8
Delphi-Quellcode:
asm
and eax 1
jnz @endif
end;

Jaaa... genau sowas sucht man, wenn man auf der Suche nach einer Delphi-Übersetzung ist :wall:


DGL-luke 26. Apr 2007 18:58

Re: C-Übersetzg: if(!(i%2))
 
Danke euch allen.

@bigg: Ich weiß, dass da Schweinereien passieren, aber die wollt ich jetzt nicht 1 zu 1 in Delphi übernehmen.

3_of_8 26. Apr 2007 18:58

Re: C-Übersetzg: if(!(i%2))
 
Das war mehr oder weniger eine "Zuspitzung" der ganzen anderen Alternativlösungen.

DMW 26. Apr 2007 19:05

Re: C-Übersetzg: if(!(i%2))
 
Zitat:

Zitat von bigg
In C gibt es keinen boolschen Werte? :shock:
Doch: bool!

bool ist C++. In C99 gibt es IIRC zwar mittlerweile ein bool-Typedef, aber C99 ist noch nicht allzu verbreitet.

bigg 26. Apr 2007 19:20

Re: C-Übersetzg: if(!(i%2))
 
Hast recht.
Vorhin hatte ich ein leeres Projekt mit bool-Anweisung kompiliert (LCC32). Da lieferte mir der Compiler keinen einzigen Fehler. Jetzt eben habe ich ein neues Projekt angelegt mit der Option "ANSI-C only" und er wirft ein paar dutzend Fehler. :shock:

Gehstock 26. Apr 2007 20:07

Re: C-Übersetzg: if(!(i%2))
 
DGL-Luke das Schnipsel kommt mir bekannt vor aus einen meiner übersetzungsversuche
Hier

bin da grad am scheitern vieleicht könntest du mir dabei helfen


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 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