frage zu XOR



  • Hallo,

    also ich weiß wie ein xor funktioniert.

    1 1 = 0
    0 0 = 0
    1 0 =1
    0 1 =1

    recht simpel aber jetzt meine frage, okay eigentlich sind es 2 fragen. und ich hoffe das ich im richtigen forum bin, denn ich weiß nicht ob meine frage c++ spezifisch ist oder nicht.

    wandelt der ^operator die zeichen in binär um? zb (a^b 1111^1110 = 0001). dh die umgewandelten binär codes werden dann wieder von dem type spezifiziert zb 0001 int = 1, string = c ?

    und gibt es vielleicht probleme zwichen 32bit und 64 bit systemen? dh wenn ich ein wort per xor auf einem 32 bit system verschlüssele, würde es dann probleme auf einem 64bit system geben dieses wort zu entschlüsseln?
    dürfte doch eigentlich kein problem sein, denn xor ist doch key-abhängig oder ?


  • Mod

    XOR rechnet wie es die Mathematik vorschreibt, das heißt wie eine XOR-Verknüpfung auf binären Zahlen. Eventuelle Hardwaredetails dürfen da keine Rolle spielen, das funktioniert auch auf einem Analogrechner oder auf Rechnern mit Bytes aus 11 fünfwertigen Bits.

    kantaki schrieb:

    wandelt der ^operator die zeichen in binär um? zb (a^b 1111^1110 = 0001). dh die umgewandelten binär codes werden dann wieder von dem type spezifiziert zb 0001 int = 1, string = c ?

    😕 Kannst du das mal in korrektem Deutsch oder korrektem C schreiben? Ich bin mir nicht sicher, was du meinst.



  • naja zb:

    copyv[v]=value[v]^keylen[k]
    

    wobei vale[v]=a und keylen[k]=b ist

    also ist die XOR abfrage

    copyv[v]= a^b;
    

    aber a alleine sagt ja nicht viel aus. wird nun das "a" in einen binärcode umgewandelt?
    zb a^b 1111^1110 = 0001

    wenn nicht wie soll der ^operator sonst vergleiche ziehen?



  • kantaki schrieb:

    wenn nicht wie soll der ^operator sonst vergleiche ziehen?

    Was glaubst du wie Zahlen in gängigen Rechnern abgespeichert werden? 🙂



  • cooky451 schrieb:

    kantaki schrieb:

    wenn nicht wie soll der ^operator sonst vergleiche ziehen?

    Was glaubst du wie Zahlen in gängigen Rechnern abgespeichert werden? 🙂

    als binär oder nicht?^^ und dieser binär code wird von dem compiler per "type" anders interpretiert. so das char 0001 was anders ist als zb int 0001

    naja wird schon so sein, wollte nur noch mal nachfragen, nicht das ich mir etwas falsches beibringe. 🙂



  • kantaki schrieb:

    so dass char 0001 was anders ist als zb int 0001

    Nein, char und int sind sehr ähnlich. Bzw. bis auf die Größe unterscheiden die sich nicht. Du kannst von "Außen" erstmal nicht beurteilen, ob du da jetzt vier char's oder ein int vor dir hast. (Wenn man mal von einer Integer-Größe von 4 ausgeht.)

    Und ja, Zahlen werden binär gespeichert, so wie alles in gängigen Computern. (Wobei Fließkommazahlen aber eine völlig andere Darstellung auf Bitebene haben können als Dezimalzahlen.)



  • cooky451 schrieb:

    Nein, char und int sind sehr ähnlich. Bzw. bis auf die Größe unterscheiden die sich nicht. Du kannst von "Außen" erstmal nicht beurteilen, ob du da jetzt vier char's oder ein int vor dir hast. (Wenn man mal von einer Integer-Größe von 4 ausgeht.)

    Das kann ich bei keinem Typen.



  • Michael E. schrieb:

    Das kann ich bei keinem Typen.

    Nur Chuck Norris kann das.


Anmelden zum Antworten