Hallo, ich habe mal eine allgemeine Frage zum rechnen mit logischen Operatoren(mehr Mathematik): Ich kenne die logischen Operatoren And, Or, Not, Nand, Nor, Xor usw. Beispiel: Eine Operation mit And ist immer dann wahr, wenn beide (alle) Operanden wahr sind. Z.B.: 1 und 1 wärn beide stehen beide für wahr, also ist das Ergebnis auch wahr. Was passiert jetzt aber, wenn die Operanden größer 1 sind, aso zum Beispiel: 230 und 195 Welches Ergebnis kommt dann heraus? Gibt es da irgendwelche Regeln? Danke schon mal im Vorraus. (sry, wenn es eine Anfängerfrage ist) Gruß Nils
Du vermischst ein bischen Logik und C Programmiersprache. In der Logik gibt es nur wahr und falsch, dort funktionieren die Operationen wie man sie sich vorstellt. Für die C Programmiersprache, welche leider keine Datentypen für wahr und falsch hat, zählt alles was 0 ist als false und alles was nicht 0 ist als wahr. 230 und 195 ist somit "wahr"
Wenn du mit logischen Operatoren arbeitest (rechnest) gibt es nur 1 und 0. Zahlen können allerdings binär dargestellt werden und wenn du mit diesen rechnen willst, brauchst du einen Volladierer, der aus mehreren logischen Gattern besteht. Schau dazu mal bei Wikipedia nach. Gruss Pascal
Man könnte es Binär sehen, dann wäre es: 230 => 11100110 und 195 => 11000011 Jede Stelle einzeln verknüpfen ergibt: 11000010 was wiederrum in Dezimalzahlen 194 ist. Weiß nicht, ob das damit gemeint ist..
In der Boolschen Logik gibt es nur "wahr" und "nicht wahr". Deine Zeichen "0" und "1" sind nur ein Darstellung für "nicht wahr" und "wahr". Genau so gut könntest Du definieren, dass "hund" für "wahr" steht und "katze" für falsch. Dann wäre hund und katze = katze hund und hund = hund Du hast also keine anderen Zahlen ausser 0 und 1.
Nils S. wrote:
> Gibt es da irgendwelche Regeln?
Nein, keine allgemeingültigen. Allein schon deshalb, weil die logischen
Operatoren zunächst mal nur Wahrheitswerte verknüpfen, und ein
Wahrheitswert kann nur true (bzw. auf deutsch wahr, 1 bei positiver
Logik) oder false (falsch, 0) sein, also nur zwei Zustände annehmen.
Es gibt also auf der Ebene gar keine "Zahlen" (außer 0 und 1 bei der
Betrachtung). Die Grundfunktionen, die auch aus der Digitaltechnik
bekannt sind, sind nur für einzelne "Bits" definiert.
Ob es Sinn macht, andere Werte mit logischen Operatoren zu verknüpfen
und wenn ja, wie diese dann interpretiert werden, hängt von
anwendungsspezifischen Vereinbarungen ab.
Man kann Zahlen z.B. als Bitfolge darstellen und dann bitweise
verknüpfen. Dann wird jedes einzelne Bit von Zahl A mit jedem einzelnen
Bit von Zahl B verknüpft. Ergebnis ist wieder eine Bitfolge, die die
logischen Verknüpfungen der einzelnen Bitwerte enthält. Deine Zahlen als
Bitfolge wären z.B.
1 | 230 --> 11100110b |
2 | 195 --> 11000011b |
3 | (bitweise UND) ======== |
4 | Ergebnis 11000010b |
Man kann auch "Objekte" direkt logisch verknüpfen, indem man z.B. sagt, dass 0 false ist und alles, was nicht 0 ist, true (was z.B. in vielen Programmiersprachen so gemacht wird). Wenn Du da z.B. Dein obiges Zahlenbeispiel nimmst und "230 UND 195" bildest, dann wäre das Ergebnis true, weil beide Operanden von Null verschieden, also true sind. Wie dieses true als Ergebnis aussieht, ist wiederum anwendungsspezifisch. In C ist true z.B. standardmäßig 1.
Hallo! in der binären Logik gibt es nur 0 und 1, deshalb ja auch binär! Wenn jetzt mehrstellige binäre Werte mathematisch verknüpft werden sollen, erfolgt das immer bitweise. Ich nehme an, die Beispielwerte sollen Dezimalzahlen darstellen. Dann mußt Du diese ins Binärformat wandeln, (geht bei 230 und 195 als Byte) und diese acht Bits mathematisch verknüpfen. Bei logischen Operationen relativ einfach, bei arithmetischen (plus, minus, mal, geteilt...) etwas komplizierter - da Überträge zwischen den Stellen auftreten können, und das Ergebnis u.U nicht mehr in das Ausgangsformat (hier ein Byte) passt. Bei Programmiersprachen ist es darüber hinaus üblich, Null als "Falsch" und alle anderen Werte ungleich Null als "Richtig" zu interpretieren. Das funktioniert dann bei allen Formaten, ob Byte, Word, Integer usw.
Hallo, vielen Dank, da habe ich mal wieder was dazu gelernt. Mfg Nils
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.