![]() |
Xor / Werte "xoren"
Was ist XOR ?
ich muss 2 werte xoren , weiß aber nicht was das ist und wie das geht. kann mir da wer helfen ? Beispiel : ce28297dede40fab3a0f6436aff3881f xor fefd887d70a73d88ac14f9a2774170a2 = c0f38a1ca252cd81d96887dc152b0863 |
XOR ist eine logische operation, wird in programmiersprachen mit ^ gemacht.
Wahrheitstabelle: 0 ^ 0 = 0 0 ^ 1 = 1 1 ^ 0 = 1 1 ^ 1 = 0 |
zerleg die zahlen in ihre einzelnen bits.
dann rechne nach folgender tabelle um. Code:
XOR-Gatter Input 1 Input 2 Output |
Zitat:
aber ich verstehe nicht wie ich die zahlen in einzelne bits zerlegen soll. kannst du mir ein beispiel geben ? |
Nachdem du die Zahlen in hexadezimalform angegeben hast kannst du sie leicht in ihre bits zerlegen.
0 = 0000 1 = 0001 2 = 0010 3 = 0011 4 = 0100 5 = 0101 6 = 0110 7 = 0111 8 = 1000 9 = 1001 10 (A) = 1010 11 (B) = 1011 12 (C) = 1100 13 (D) = 1101 14 (E) = 1110 15 (F) = 1111 |
also aus 4fac wird dann 0100 1111 1010 1100
und aus 1110 1011 0010 0001 wird eb21 |
Zitat:
und muss ich jetzt die 2 zeilen die ich binär umgewandelt hab zusammen rechnen und dann wieder auf dezimal umwandeln ? |
Zerlegung von Zahlen bis FF (Dez: 255) in Basic:
Wert=xxx (dezimal) if wert>127 then dec wert,128:bit7=1 else bit7=0 if wert>63 then dec wert,64:bit6=1 else bit6=0 if wert>31 then dec wert,32:bit5=1 else bit5=0 if wert>15 then dec wert,16:bit4=1 else bit4=0 if wert>7 then dec wert,8:bit3=1 else bit3=0 if wert>3 then dec wert,4:bit2=1 else bit2=0 if wert>1 then dec wert,2:bit1=1 else bit1=0 if wert=1 then bit0=1 else bit0=0 Übrigens kann man in manchen Dialekten BIN$(xxx) verwenden um den Binärwert zu erhalten. Die oben gezeigte Routine ist aber komischerweise schneller als das BIN$() von Dark Basic Pro. Im Prinzip mußt Du also nur den umgekehrten Weg der Binär zu Dezimalumrechnung gehen, statt multiplizieren, immer nur dividieren mit zweier-potenzen. Man kann die Routine also noch erweitern um größere Zahlen zu erfassen. |
Zitat:
Natürlich kannst Du ja auch Binär direkt in Hex umwandeln... |
also zumindest in c geht es, dass du ints direkt xor'st
sprich 4 ^ 2 wär zum beispiel 6 100 010 110 da ersparst du dir das manuelle bit-setzen und einzelne vergleichen. wie das in der von dir benötigten sprache geht, weiß ich nicht |
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag