AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Was bedeutet AND?

Ein Thema von Fussball-Robby · begonnen am 23. Mär 2008 · letzter Beitrag vom 25. Mär 2008
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#1

Was bedeutet AND?

  Alt 23. Mär 2008, 20:08
Hey,
ich würde gerne mal wissen, was die Funktion AND bewirkt. NEIN, natürlich nicht das hier: If (i=1) AND (j=2) Then...; Sondern das hier:
Delphi-Quellcode:
  CheckBox1.checked:=(i and 1)>0;
CheckBox2.checked:=(i and 2)>0;
CheckBox3.checked:=(i and 4)>0;
CheckBox4.checked:=(i and 8)>0;
CheckBox5.checked:=(i and 16)>0;
Der Code stammt aus einem Programm, das mit einer Platine arbeitet. Auf der Platine gibt es 5 Buttons, und i hat den Input Wert. Wird der erste Button gedrückt, wird 1 zum Wert dazugerechnet, beim zweiten 2 usw.:
Code:
Button1 -> 1
Button2 -> 2
Button3 -> 4
Button4 -> 8
Button5 -> 16
Also kann der Wert zwischen 0 und 31 schwanken. Ich würde jetzt mal gerne wissen, was dieses AND bewirkt.

Mfg

[Edit] Ich weiß, dazu gibt es bestimmt überall Antworten, aber mit dem Suchbegriff AND bin ich hier sowie bei Google und anderen Seiten nicht weit gekommen... [/Edit]
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Was bedeutet AND?

  Alt 23. Mär 2008, 20:12
Ist die binäre Addition.
Markus Kinzler
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Was bedeutet AND?

  Alt 23. Mär 2008, 20:12
And Verknüpft zwei Werte bitweise.
Das typische Beispiel ist da natürlich:
1 AND 1 = 1
0 AND 1 = 0
usw...
das gleiche macht AND auch bei mehreren Bits
1001 and 1100 = 1000
0111 and 1000 = 0000
etc...

mit OR, XOR und NOT ist es das gleiche.
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Was bedeutet AND?

  Alt 23. Mär 2008, 20:16
Ich verstehe noch nicht ganz..
Wieso genau ist 1001 and 1100 = 1000?
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Was bedeutet AND?

  Alt 23. Mär 2008, 20:17
Code:
.
  1 0 0 1
   A N D
  1 1 0 0
---------
= 1 0 0 0
1 AND 1 = 1
1 AND 0 = 0
0 AND 1 = 0
0 AND 0 = 0
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Was bedeutet AND?

  Alt 23. Mär 2008, 20:32
Moin Robert,

in Deinem Beispiel wird AND als Operator eingesetzt, um jeweils ein bestimmtes Bit von i zu testen.
Die Werte hinter dem AND entsprechen jeweils einer Zweierpotenz (1 = 2^0, 2 = 2^1, 4 = 2^2 usw.)
Ist das jeweilige Bit in i gesetzt, ist der Wert > 0.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: Was bedeutet AND?

  Alt 23. Mär 2008, 20:43
AND wird vor allem bei Bitmasken eingesetzt und mit diesem Begriff ist es vielleicht einfach zu erklären:

Du hast einen Wert x, der binär so dargestellt wird:

1111

Und du hast einen Wert y, der binär so dargestellt wird:

1010

Wenn wir nun ein binäres UND zwischen den beiden Werten durchführen, dann kommt folgendes raus:

1111 AND 1010 => 1010

Ok, nun tauschen wir einfach mal x aus und ersetzen es durch den binären Wert

0000

Nun das gleiche nochmal, also

0000 AND 1010 => 0000

So, nun eine Erklärung mit der Bitmaske. Der Wert y, also jeweils der zweite Wert stellt eine Maske da, wie eine Lockmaske, nur diesmal geben die gesetzten Bits (also die 1'en) an, welche Bits von dem anderen Wert (x) an der selben Stelle (Wertigkeit) unverändert bleiben und welche immer fest auf 0 gesetzt werden (nicht durchlassen). Von daher der Name Bitmaske: Der Wert y gibt mit den gesetzten Bits an, welche von denen durchgelassen werden (durch die Maske) und welche nicht (also auf 0 gesetzt werden).

Besser verständlich?
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Was bedeutet AND?

  Alt 23. Mär 2008, 20:47
die checkboxen zeigen also die binäre schreibweise der zahlen an.
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Was bedeutet AND?

  Alt 23. Mär 2008, 21:02
Danke, ich denke, ich habs jetzt verstanden.
Jetzt nochmal zu dem Code von oben. Nehmen wir an, i ist 6.
Code:
110   AND 001   = 000  -> 1 ist nicht gedrückt [i AND 1]
110   AND 010   = 010  -> 2 ist gedrückt       [i AND 2]
110   AND 100   = 100  -> 3 ist gedrückt       [i AND 4]
0110  AND 1000  = 0000  -> 4 ist nicht gedrückt [i AND 8]
00110 AND 10000 = 00000 -> 5 ist nicht gedrückt [i AND 16]
Passt so. Ich hoffe mal, ich hab das jetzt richtig gemacht...
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#10

Re: Was bedeutet AND?

  Alt 23. Mär 2008, 21:39
AND wird hier eingesetzt als BITMASKE.

Die Operation ergibt true (1) wenn beide Werte links und rechts vom AND gleich TRUE (1) sind.
Bei Mehrstelligen Werten werden die BIT in der gleichen Spalte verglichen.

Wenn man genau ist, ist AND eine Binär-Multiplikation.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 13:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz