AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

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
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.460 Beiträge
 
Delphi 12 Athens
 
#1

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

  Alt 6. Okt 2012, 18:06
Hallo...

es wird von links nach rechts ausgewertet. Der erste Ausdruck anders geklammert (Wie ausgewertet wird) Dann ist es für dich logisch.

if (not 2) = (1) then Edit: nur aus Prinzip zum 3. Mal weil zu langsam Wie die Geier alle
  Mit Zitat antworten Zitat
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
187 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 6. Okt 2012, 18:33
Lach, thx.

Daher verlangen andere Sprachen bei Sowas eine Klammerung. Da muß man erstmal drauf kommen, not 2 ist ein binäres not...
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.485 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

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

  Alt 6. Okt 2012, 18:41
Und deswegen schreibt man nicht "not (2 = 1)" sondern "2 <> 1". Wofür gibt es denn sonst zu jeder Relation eine "Gegenrelation". Das muss ich meinen Kollegen auch immer wieder des öfteren einbläuen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 6. Okt 2012, 19:18
Man muß sich eigentlich nur mal merken, in welcher Reihenfolge Operatoren ausgewertet werden.

NOT ist nunmal höherrangiger, als alles Andere (abgesehn vom unären -)
und wenn man da keine Klammern setzt, dann wird das immer zuerst ausgewertet.


@jbg: *zustimm*
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

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

  Alt 6. Okt 2012, 19:05
Lach, thx.

Daher verlangen andere Sprachen bei Sowas eine Klammerung. Da muß man erstmal drauf kommen, not 2 ist ein binäres not...
Vergleiche mit
Code:
-2+1 <> -(2+1)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
DSCHUCH

Registriert seit: 6. Jun 2007
Ort: Dresden
187 Beiträge
 
Delphi 11 Alexandria
 
#6

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

  Alt 6. Okt 2012, 19:21
das ist schon klar.

das ist aber auch eine klare mathematische operation. in meinem fall waren es klare integer und keine binärdaten. Typ Integer. Daher....

Code:
if not 'a' = 1 then
geht tatsächlich auch als syntax.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

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

  Alt 6. Okt 2012, 22:00
das ist schon klar.

das ist aber auch eine klare mathematische operation. in meinem fall waren es klare integer und keine binärdaten. Typ Integer. Daher....
Du hast es nicht verstanden, oder?
NOT und AND sind sowohl logische als auch -wie du es nennst- Integer-Operatoren.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

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

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

  Alt 6. Okt 2012, 22: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.573 Beiträge
 
Delphi 12 Athens
 
#9

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

  Alt 6. Okt 2012, 22: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.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

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

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

  Alt 6. Okt 2012, 22: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 12:15 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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