Rechenoperator "and"

  • VB6

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Gonger96.

    Rechenoperator "and"

    Hallo Leute,

    ich stehe grade auf dem Schlauch und wollte kurz nachsehen, ob sich hier jemand findet, der mir helfen kann.
    Vielleicht ist die Frage trivial, aber ich komme an der Stelle im Code nicht weiter. :(

    Wie funktioniert die Berechnung eines Wertes mit dem Operator "And" in vb6? ?(

    Bsp.: Ich habe einen Wert von 7685 und berechne diesen mit "And" 255. Das Ergebnis lautet dann 5.

    An dieser Stelle verstehe ich nicht ganz, wie ich auf den Wert 5 komme. Des Weiteren muss ich nach bearbeitung den Wert x, z.B. 15, auf das Schema bringen,
    dass ich ihn beim Auslesen mit "And 255" berechnen kann.

    Bsp.: x And 255 = 15 -> 15 ... = x

    Wäre nett, wenn sich jemand findet, der mir kurz eine Erklärung geben könnte, bzw. mich auf den richtigen Weg führt.

    Mfg
    Bianco
    .wife {right: 100%; margin: 0;}

    Bianco schrieb:

    An dieser Stelle verstehe ich nicht ganz, wie ich auf den Wert 5 komme.


    Hi,

    beim logischen And werden die Bits an den selben Position verglichen, wenn beide Bits an der gleichen Stelle gesetzt sind, ist das Bit beim Ergebnis auch gesetzt. Zur veranschaulichung:

    Brainfuck-Quellcode

    1. ‭0001111000000101‬‬ '7685
    2. 00000000‭11111111‬ '255
    3. ---------------- 'Logical And
    4. 0000000000000101 '5


    Code-Tag eingefügt. ~Thunderbolt
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Hallo Bianco,
    du mußt die beiden Zahlen binär umrechnen und dann
    Stelle für Stelle mit And verknüpfen:
    7685 dez entspricht 0001111000000101 bin
    255 dez entspricht 0000000011111111 bin

    Den zweiten Teil deiner Frage habe ich nicht verstanden.
    Willst du aus dem Ergebnis der And-Verknüpfung wieder
    den Anfangswert ermitteln? Das geht nicht.
    Gruss,

    Neptun

    NoIde schrieb:


    ‭0001111000000101‬‬ '7685
    00000000‭11111111‬ '255
    ---------------------- 'Logical And
    0000000000000101 '5


    Vielen Dank, dass habe ich schonmal verstanden. :)

    Gibt es eine Möglichkeit, wie ich wieder von der 5 auf die 7685, die mir für den Test unbekannt ist, komme? ?(
    .wife {right: 100%; margin: 0;}
    @Bianco Soll das eine Verschlüsselung werden? Gugst Du Einfache Methode um String zu verschlüsseln
    Wenn nein: Was soll es werden?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Dieser Wert wird in eine Sps-Variable geschrieben. Habe es jetzt verstanden und auch geschafft.

    Aufgabe war, dass zwei acht-Bit Zahlen in eine 16-Bit Zahl umgewandelt werden.

    Bsp.: Zahl 1 -> 22 & Zahl 2 -> 6

    0001 0110 -> 22| Dez
    0000 0110 -> 6| Dez

    Zusammengesetzt zu 16 Bit
    22 6
    0001 0110 | 0000 0110 -> 5638

    Und dieser Wert wird dann anschließend geschrieben. Und um am Ende wieder meine sechs zu erhalten, rechne ich meine 5638 And 255 = 6.

    Danke für eure Hilfe! :thumbsup:

    Mfg
    Bianco

    Vollzitat entfernt. ~Thunderbolt
    .wife {right: 100%; margin: 0;}

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Bianco schrieb:

    Aufgabe war, dass zwei acht-Bit Zahlen in eine 16-Bit Zahl umgewandelt werden.
    Warum steht denn das nicht im Eröffnungspost?

    VB.NET-Quellcode

    1. val16 = val8_1 * 256 Or val8_2 ' ohne Schift-Operation
    2. ' und zurück:
    3. val8_2 = val16 And 255
    4. val8_1 = val16 \ 256 ' Achtung: Backslash: Integer-Division
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!