Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

09.11.2010, 22:18

Kurze Frage zu einer If Bedingung

Hallo, ich hab nur eine kurze Frage:

Ist es eig auch zulässig, so eine if bedingung zu schreiben?

C-/C++-Quelltext

1
if( (a | b) >= c))


oder muss man das so anschreiben?

C-/C++-Quelltext

1
if( (a >= c) | (b >= c))


Schönen abend noch
Ombalat

Mastermind

unregistriert

2

09.11.2010, 22:27

Wenn das C++ sein soll, ist | ein bitwise or und beides ist zulässig. Mit logischem or (||) wäre es wohl nicht möglich.

3

09.11.2010, 22:31

yepp, ich hab C++ gemeint, vielen Dank

Libe Grüße,
Ombalat

Mastermind

unregistriert

4

09.11.2010, 22:39

Zur Sicherheit:

Es ist nicht äquivalent.

(100|010) >= 101 : true

aber

(100>=101) | (010>=101) : false

5

09.11.2010, 22:51

Versteh ich das jz richtig?

Zur Sicherheit:
(100|010) >= 101 : true


macht er aus dem (100|010) ne 110 (Hab ich mir jz über die Digitaltechnik gedacht) und ist deshalb größer?
Also sollt man das für nen Vergleich von Integer - Variablen eher nicht verwenden ..

Mastermind

unregistriert

6

09.11.2010, 22:54

Ja es ist ein bitwise or. Benutze in Vergleichen besser das logische or || wenn du das logische or meints.

7

09.11.2010, 23:07

Achsoo ... also wenn ich jz vergleichen will, ob eine der 2 Zahlen größer ist, funktioniert es mit dem logischen or schon?
also spricht z.b (int Werte): ((25 || 30) >= 50) = false
und anderersetits: ((25 || 30) >= 10) = true
Hab das bitweise und logische or ein wenig zureinander gebracht ^^

Mastermind

unregistriert

8

09.11.2010, 23:08

(hab mich geirrt)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mastermind« (09.11.2010, 23:23)


NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

9

09.11.2010, 23:14

er wirds vermutlich in bool casten und dann wieder in int. also hast du links immer eine 1 stehen wenn da keine zwei nullen stehen.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

10

09.11.2010, 23:19

also spricht z.b (int Werte): ((25 || 30) >= 50) = false
und anderersetits: ((25 || 30) >= 10) = true

Das was in der inneren Klammer steht ist immer true (außer (0 || 0) und true ist 1, deswegen ist der gesamte Vergleich immer false. Fazit: So kann man nicht vergleichen. Richtig ist ((25 >= 50) || (30 >= 50)).

EDIT:
Zu langsam...

Werbeanzeige