![]() |
Boolean-Werte addieren?
Kann man Boolean-Werte eigentlich addieren? Und zwar so, dass aus der Summe ersichtlich ist, wie viele True- und wie viele False-Werte enthalten sind?
|
Re: Boolean-Werte addieren?
Da würde ich nicht von Addition reden. da wird man eher Zählen müssen
|
Re: Boolean-Werte addieren?
True entspricht 1 und false entspricht 0, wenn du also bei true immer mit 1 addierst, erhälst du die Anzahl der true-Werte. Dann müsstest du noch die Gesamtanzahl kennen, also mit true und false und daraus lässt sich dann ja alles weitere berechnen.
|
Re: Boolean-Werte addieren?
//ok, ich war zu langsam
|
Re: Boolean-Werte addieren?
Genau genommen ist False als null definiert und true als alles andere. Wenn jetzt eine Funktion 258 als wahr zurückgibt ...
|
Re: Boolean-Werte addieren?
Zitat:
Gruss Reinhard |
Re: Boolean-Werte addieren?
Zitat:
|
Re: Boolean-Werte addieren?
Jaein, also ein Integer(true) wird sicher immer 1 sein, aber Delphi hat bei WinApi-Funktionen durchaus schonmal einen Boolean als Rückgabe, die Funktion gibt aber -1 zurück.
|
Re: Boolean-Werte addieren?
Zitat:
das ist bei bitweiser Logik auch konsequent, da not 1 = $FFFF ist bei einem word usw. Genaugenommen sind das aber 16/32/... boolsche Operationen. Gruss Reinhard |
Re: Boolean-Werte addieren?
Das resultiert aber in der Verwendung von BOOLEAN und BOOL, welche sich eben in dem unterscheiden.
Delphi-Quellcode:
Geht mal Schritt für Schritt darüber und schaut euch an was herauskommt. Die Variable a, welche BOOLEAN deklariert ist, enhält INT 1. Aber b, welche als BOOL deklariert ist enthält INT -1.
var
a : BOOLEAN; b : BOOL; c , d : INTEGER; begin a := TRUE; b := TRUE; c := INTEGER(a); d := INTEGER(b); end; Edit: Um also nochmal zu der Frage des Threaderstellers zurückzukommen. Inkrementiere einfach eine Variable so oft, wie ein Wahrheitswert auftritt. Willst du noch die Gesamtzahl aller Werte wissen, so inkrementiere stets noch eine zweite Variable mit.
Delphi-Quellcode:
var
BoolVal : BOOLEAN; TrueVals, SumVals : INTEGER; {...} if BoolVal then inc(TrueVals); inc(SumVals); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:43 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 by Thomas Breitkreuz