AGB  ·  Datenschutz  ·  Impressum  







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

not 2=1 ist nicht not(2=1)

Ein Thema von DSCHUCH · begonnen am 6. Okt 2012 · letzter Beitrag vom 7. Okt 2012
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

AW: not 2=1 ist nicht not(2=1)

  Alt 6. Okt 2012, 23:18
Naja letztendlich sind sogar die logischen and/not/or/.. -Operatoren binäre Operatoren. (siehe C/C++)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#12

AW: not 2=1 ist nicht not(2=1)

  Alt 6. Okt 2012, 23:37
In Delphi werden not/and/or/xor binär verwendet, außer bei den Booleans (Boolean/ByteBool/WordBool/LongBool, also alles mit True/False), wo diese als logische Operatoren behandelt werden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#13

AW: not 2=1 ist nicht not(2=1)

  Alt 6. Okt 2012, 23:44
Naja letztendlich sind sogar die logischen and/not/or/.. -Operatoren binäre Operatoren. (siehe C/C++)
Nicht unbedingt!
Die Konstante true ist in Delphi als 1 definiert (unter C/C++ gibts verschiedene...), demnach ergaebe ein bitweises not true aber 254, was nicht false ist (false ist nur 0).
Daher sehen die Operatoren in C/C++ ja auch anders aus: "!" fuer logisches Not und "~" fuer bitweises.
Das gleiche bei Or und And: "||" und "&&" fuer logisch, "|" und "&" fuer bitweise.
In Delphi heissen die eben immer gleich, daher muss man ein wenig auf den Zusammenhang aufpassen.

Geändert von implementation ( 7. Okt 2012 um 13:15 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.685 Beiträge
 
Delphi 2007 Enterprise
 
#14

AW: not 2=1 ist nicht not(2=1)

  Alt 7. Okt 2012, 05:06
Ich war immer der Auffassung, dass der Unterschied zwischen ||/&& und |/& darin liegt, dass ersteres Optimierung zulässt, und letzeres immer zur Vollauswertung des Ausdrucks führt. Also das, was man bei Delphi über die Compileroptionen nur global einstellen kann ("Boolsche Ausdrück vollständig auswerten" heisst die imho).
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#15

AW: not 2=1 ist nicht not(2=1)

  Alt 7. Okt 2012, 10:08
Ich war immer der Auffassung, dass der Unterschied zwischen ||/&& und |/& darin liegt, dass ersteres Optimierung zulässt, und letzeres immer zur Vollauswertung des Ausdrucks führt. Also das, was man bei Delphi über die Compileroptionen nur global einstellen kann ("Boolsche Ausdrück vollständig auswerten" heisst die imho).
Das ist nicht ganz korrekt. Durch die Verwendung von $B bzw. $BOOLEVAL kannst du das lokal einstellen. Siehe auch hier.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#16

AW: not 2=1 ist nicht not(2=1)

  Alt 7. Okt 2012, 10:15
Medium, ihr beide habt recht:
Hier

Aber imho folgt aus der Tatsache, das & und | binäre Operatoren sind, das sie vollständig ausgeführt werden müssen.


Naja letztendlich sind sogar die logischen and/not/or/.. -Operatoren binäre Operatoren. (siehe C/C++)
Und DAS ist in Bezug auf Delphi falsch. Delphi unterscheidet hier anhand des Datentyps.

Bool AND Bool => logischer Operator
Int AND Int => binärer Operator
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#17

AW: not 2=1 ist nicht not(2=1)

  Alt 7. Okt 2012, 13:16
Ich war immer der Auffassung, dass der Unterschied zwischen ||/&& und |/& darin liegt, dass ersteres Optimierung zulässt, und letzeres immer zur Vollauswertung des Ausdrucks führt. Also das, was man bei Delphi über die Compileroptionen nur global einstellen kann ("Boolsche Ausdrück vollständig auswerten" heisst die imho).
Das kommt m.W. auf die Sprache an. In C/C++ ist die Unterscheidung logisch/bitweise, in C# verkuerzt/unverkuerzt.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.685 Beiträge
 
Delphi 2007 Enterprise
 
#18

AW: not 2=1 ist nicht not(2=1)

  Alt 7. Okt 2012, 16:03
Ah! Ich könnte C# im Kopf haben, das hab ich auch weit öfter benutzt als C(++). Compilerschalter, okay. Die gibts ja auch noch =)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 05:35 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