Invertierung !(false/true)

Tricky

Mitglied
Wenn !(false | | false)=!(false)=true ist

was ist dann

!(true&&false)=!(....)

Kann man sagen das true=1 und false=0 gilt, dann wäre true&&false=1&&0=0=false nach Logik-Gatter.
 

White_Fox

Top Contributor
In Java ist die Zuweisung true=1 oder false=0 sinnlos. Löse dich von dieser Vorstellung, je schneller desto besser. Sie ist nicht hilfreich, und neigt nur dazu dich zu verwirren.
Die Zuweisung "True = 1 = Spannung ein" ist eine reine Definitionssache. Die boolsche Algebra kennt keine numerischen Ausdrücke 0 oder 1 oder andere.
Es gibt natürlich Fälle, in denen eine solche Zuweisung sinnvoll oder gar notwendig ist. Dennoch ist eine gedankliche Trennung zwischen der eigentlichen Theorie und der Mathematik wichtig für das Verständnis. Beides zu vermischen mag als Gedankenkrücke anfänglich sinnvoll erscheinen, diese kann einem aber auch ganz schnell mal fürchterlich auf die Füße fallen. Spätestens dann, wenn z.B. eine andere Zuweisung sinnvoller ist.

In C (im Unterschied zu Java kommt man da an solche Mechanismen noch ran) ist false als 0 definiert, und true als nicht 0. Es KANN 1 sein, genausogut aber auch -1. Oder 2, 3, ...
In C wird das teilweise genutzt, um gleich Fehlercodes mit rauszugeben. Solange eine Methode False (im Sinne von "Fehler vorhanden" = false -> alles ok) zurückgibt ist alles ok, alles andere ist ein Fehler. Was für ein Fehler...das sagt dir der Errorcode -1, 1, 2, ...
 

httpdigest

Top Contributor
Vielleicht kurz noch eine Zusatzinformation: In der Quellcodesprache-unabhängigen Bytecode-Sprache der JVM wird für das Produzieren von true als Literal die 1 (int) und zum Produzieren von false als Literal die 0 (int) verwendet. ICONST_1 für true und ICONST_0 für false. Natürlich müssen true/false Konstrukte irgendwann einmal in Maschinencode heruntergebrochen werden. Witzigerweise passiert das aber bereits im JVM Bytecode, wo es außer dem Typdescriptor "Z" (für boolean) keine weitere Unterscheidung zwischen boolean und int gibt.
Ich stimme aber @White_Fox völlig zu, dass man in solchen niedrigen Abstraktionsebenen nicht denken sollte oder irgendwelche Annahmen über die Repräsentation treffen sollte.
 

White_Fox

Top Contributor
Vielleicht kurz noch eine Zusatzinformation: In der Quellcodesprache-unabhängigen Bytecode-Sprache der JVM wird für das Produzieren von true als Literal die 1 (int) und zum Produzieren von false als Literal die 0 (int) verwendet.
Interessant...das wußte ich auch noch nicht. Ich wußte, daß so ziemlich alles in der JVM als int behandelt wird (auch z.B. Bytes), aber auch die booleans...prima, wieder was gelernt. :)

Ich weiß gar nicht wie das in C ist. Der C-Standard sah ein boolean ursprünglich gar nicht vor, bis so eine Bibliothek irgendwann mal in den Standard aufgenommen wurde. Ich könnte mir aber sehr gut vorstellen, daß ein Boolean da tatsächlich in einem einzelnen Bit gespeichert wird und man somit acht booleans in einem Byte unterbringen kann. Speicherplatz war noch kostbar als diese Bibliothek geschrieben wurde - und ist es heute teilweise immer noch (wenn auch deutlich seltener).
 

httpdigest

Top Contributor
Ich denke mal, in C wird es ein byte sein, da man weder im Hauptspeicher noch in Registern ein einzelnes Bit adressieren kann. Und ich denke mal nicht, dass der C-Compiler mehrere gemeinsam genutzte Booleans in einem byte packed und bei jedem Zugriff darauf per Bitshifting wieder unpacked. Das wäre viel zu teuer.
 

White_Fox

Top Contributor
Es wäre als einzelnes Byte auf jeden Fall einfacher zu implementieren.
Allerdings arbeitet man in C auch sehr häufig mit Masken und daher im Endeffekt sehr wohl mit einzelnen Bits. Es ist halt wie so oft die Frage, was teurer ist: Speicherplatz oder Rechenleistung. Daher hätte ich das die Implementierung als Bit zumindest nicht abwegig gefunden. Aber genau weiß ich es auch nicht, Programmieren ist nur eine Nebenbeschäftigung.
 

httpdigest

Top Contributor
Allerdings arbeitet man in C auch sehr häufig mit Masken und daher im Endeffekt sehr wohl mit einzelnen Bits.
Deswegen sagte ich auch: "Und ich denke mal nicht, dass der C-Compiler mehrere gemeinsam genutzte Booleans in einem byte packed und bei jedem Zugriff darauf per Bitshifting wieder unpacked."
Booleans als Bits in ein Byte packen würde ja nur etwas bringen, wenn du zu einem Zeitpunkt `t` im Programmfluss auch mehrere Booleans verwenden würdest, bzw. mehrere Booleans "live" wären, so dass du auch die Bits eines Bytes damit füllen könntest. Ansonsten würdest du halt ein Bit als Boolean in ein Byte packen, hättest damit aber nicht viel erreicht, weil du immer noch ein Byte als Speicherplatz benötigst. Es bleibt: Man kann einzelne Bits nicht adressieren, nur Bytes.
 

temi

Top Contributor
In Java ist die Zuweisung true=1 oder false=0 sinnlos. Löse dich von dieser Vorstellung, je schneller desto besser. Sie ist nicht hilfreich, und neigt nur dazu dich zu verwirren.
Die Zuweisung "True = 1 = Spannung ein" ist eine reine Definitionssache. Die boolsche Algebra kennt keine numerischen Ausdrücke 0 oder 1 oder andere.

Ich glaube nicht, dass der @Tricky damit gemeint hat, dass in Java "true" durch den Wert 1 und "false" durch den Wert 0 repräsentiert wird.

Ich schätze er meint einfach die sogenannten Wahrheitstabellen, die es z.B. für Logikgatter aus der Schaltungstechnik gibt, also z.B. für UND:

0 0 0
0 1 0
1 0 0
1 1 1
 
X

Xyz1

Gast
Und-Logikgatter:
Code:
  0 1
0 0 0
1 0 1


Oder-Logikgatter:
Code:
  0 1
0 0 1
1 1 1
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Formel zur invertierung einer Zahl Java Basics - Anfänger-Themen 8
F invertierung einer Hashtable Java Basics - Anfänger-Themen 4
I String Expression mit Java validieren (true / false) Java Basics - Anfänger-Themen 34
M Was habe ich hier falsch, dass wenn ich z.B.: 11 eingebe mir false zurück gegeben wird? Java Basics - Anfänger-Themen 2
C Objekt1.equals(Objekt2) = immer false. Wieso? Java Basics - Anfänger-Themen 22
H Koordinateneingabe im 2D Array soll true/false zurückgeben Java Basics - Anfänger-Themen 5
M Wie gebe ich true or false aus? Java Basics - Anfänger-Themen 9
J HashSet Methode contains liefert false (hash Methode überschrieben) Java Basics - Anfänger-Themen 3
helldunkel While Schleife trotz false Java Basics - Anfänger-Themen 4
M TextArea scrollbar bei editable false Java Basics - Anfänger-Themen 5
M Erste Schritte while boolean=false läuft nur bei true??? Java Basics - Anfänger-Themen 23
J Array Muster mit true und false Java Basics - Anfänger-Themen 6
I set contains false Java Basics - Anfänger-Themen 11
N Boolean Werte - immer "false" Java Basics - Anfänger-Themen 5
O Was verursacht den Rückgabewert false bei der Methode ready() eines BufferedReaders Java Basics - Anfänger-Themen 9
B setOpaque(false) funktioniert nicht Java Basics - Anfänger-Themen 16
C ActionEvent mit CheckBox (true und false) Java Basics - Anfänger-Themen 6
M !boolean das selbe wie boolean == false? Java Basics - Anfänger-Themen 3
C Scrollpanel autoscroll(false) macht nix Java Basics - Anfänger-Themen 2
J if false Java Basics - Anfänger-Themen 3
F Enabled (false), dennoch nutzbar? Java Basics - Anfänger-Themen 3
B Warum gibst hier Equals false zurück ? Java Basics - Anfänger-Themen 23
W Methoden "Fröhliche Zahl" true | false Java Basics - Anfänger-Themen 14
D Frage zu true false in Schleifen Java Basics - Anfänger-Themen 8
feardorcha boolean array false - true - Abfrage Java Basics - Anfänger-Themen 10
Helgon Observer Pattern - hasChanged() immer false Java Basics - Anfänger-Themen 10
R If-Abfrage liefert false zurück, wieso ? Java Basics - Anfänger-Themen 20
A .setEnabled(false) zu langsam? Java Basics - Anfänger-Themen 17
3 Collections containsKey() liefert false obwohl equals() true liefert Java Basics - Anfänger-Themen 6
B if erzeugt nur immer ein FALSE Java Basics - Anfänger-Themen 2
I wie definiere ich ja oder nein für true or false Java Basics - Anfänger-Themen 7
Raidri Pattern liefert false Java Basics - Anfänger-Themen 9
Luk10 Methode gibt false zurück! Java Basics - Anfänger-Themen 2
M true und false treiben mich ins Grab! Java Basics - Anfänger-Themen 5
C setResizable(false) unter NetBeans Java Basics - Anfänger-Themen 3
F Regulärer Ausdruck warum false ? Java Basics - Anfänger-Themen 3
Y setVisible(false) Java Basics - Anfänger-Themen 21
D "true" -> Boolean wird false?! Java Basics - Anfänger-Themen 6
D Array zufällig mit 1 oder 0 oder mit true oder false füllen Java Basics - Anfänger-Themen 5
S Elemente einer Liste mit true / false Werten Java Basics - Anfänger-Themen 3
S if anweisung wird ausgeführt egal ob bedingung true o. false Java Basics - Anfänger-Themen 2
RK Scanner.hasNext() ist niemals false! o_O Java Basics - Anfänger-Themen 3
C regexp gibt immer false aus Java Basics - Anfänger-Themen 4
S jtable.editable(false) CODE? Java Basics - Anfänger-Themen 3
O true false Java Basics - Anfänger-Themen 5
G Fenster.setVisible(true); true -> false Zwischenwert? Java Basics - Anfänger-Themen 11
D Buttons gehen trotz enebled(false) Java Basics - Anfänger-Themen 8
A Übungsaufgabe lösen - Problem mit true und false Java Basics - Anfänger-Themen 6
M Textboxen lassen sich ändern obwohl editable = false Java Basics - Anfänger-Themen 8
M Per Button einer Funktion true oder false übermitteln? Java Basics - Anfänger-Themen 4
L Bedingung immer false, auch wenn zwei Strings gleich sind Java Basics - Anfänger-Themen 11
R Ist ! gleich false? Java Basics - Anfänger-Themen 3
M if(b){ b=false}else{b=true} Java Basics - Anfänger-Themen 4
K public boolean contains (Object obj) > true or false Java Basics - Anfänger-Themen 16
A Warum ist 1/10 == 0.1 false? Java Basics - Anfänger-Themen 4
M Prob bei JTextArea auf .setEditable(false) setzen Java Basics - Anfänger-Themen 2
Z while (eingabe.equals("ENDE") == false) Java Basics - Anfänger-Themen 5
frau-u Eine Exception bei false Java Basics - Anfänger-Themen 5
K Warum zeigt dieser reguläre Ausdruck true an? Java Basics - Anfänger-Themen 1
F boolean stellt sich auf true Java Basics - Anfänger-Themen 15
W Stackabarbeitung - Wozu dient das "True" ? Java Basics - Anfänger-Themen 1
A Alle true Werte eines boolean Arrays herausfiltern Java Basics - Anfänger-Themen 19
I Methoden List.contains() beim 2. Element = true Java Basics - Anfänger-Themen 1
D Warum nicht true wenn Array leer ist? Java Basics - Anfänger-Themen 8
N Zwei Strings mit "==" vergleichen warum TRUE Java Basics - Anfänger-Themen 2
D Break Sprungmarken Problem einer While True in While True Java Basics - Anfänger-Themen 6
D Zwei Strings sind gleich bei if aber nicht true Java Basics - Anfänger-Themen 2
G Boolschen Ausdruck true machen Java Basics - Anfänger-Themen 2
H if-Abfrage, ungleich und falscher true Wert? Java Basics - Anfänger-Themen 11
S If-Anweisunng ist IMMER true Java Basics - Anfänger-Themen 2
DStrohma Operatoren Kleiner-Zeichen in Größer-Zeichen ändern wenn boolen true? Java Basics - Anfänger-Themen 6
U if true, "deaktiviere" Methoden der Klasse Java Basics - Anfänger-Themen 9
R Hashset.add(Array) liefert immer true? Java Basics - Anfänger-Themen 23
W Methoden Ausgabe true wenn nur Ziffern <= 1 vorhanden Java Basics - Anfänger-Themen 9
J Variablen Boolean true "übersetzen" in String Java Basics - Anfänger-Themen 10
S Variablen Prüfen, ob einer von vielen boolean true ist Java Basics - Anfänger-Themen 8
S JTextArea mit LineWrap true viel zu groß! Java Basics - Anfänger-Themen 2
H while(true){} Java Basics - Anfänger-Themen 26
M isHidden() von java.io.File liefert immer true in Windows Java Basics - Anfänger-Themen 3
D setAlwaysOnTop(true); toFront(); - bringt alles nichts Java Basics - Anfänger-Themen 5
C warum liefert equals kein TRUE Java Basics - Anfänger-Themen 12
algorismi Ausführungszeit Vergleich == true Java Basics - Anfänger-Themen 8
C File.canWrite() immer true? Java Basics - Anfänger-Themen 12
K Frage zu "-Djava.awt.headless=true" und deploy in Java Basics - Anfänger-Themen 4
G while (true) ? wodurch wird diese Schleife beendet? Java Basics - Anfänger-Themen 6
B JavaFilter true rückgabe Java Basics - Anfänger-Themen 23
K Primzahl//immer true Java Basics - Anfänger-Themen 7
M Swing Anwendung - boolean schaltet automatisch auf true Java Basics - Anfänger-Themen 2
G setVisible(true) <--> toFront() Java Basics - Anfänger-Themen 3
M Problem beim ändern von Komponenten während Visible(true) Java Basics - Anfänger-Themen 4
S Problem mit setEnabled(true) Java Basics - Anfänger-Themen 3
C Shiften.euqals("bahnhof") == true; Java Basics - Anfänger-Themen 4
G Problem mit setVisible(true) Java Basics - Anfänger-Themen 10
V Beginner question with check true value??? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben