Xor to strenger i python

Xor to strenger i python

Mens programmering i Python, "Xor”Operatøren brukes i flere oppgaver. For eksempel, for å oppdage feil eller problemer i dataoverføring ved hjelp av sjekksum, bruk kryptering på meldinger eller hente visse biter fra et tall. Mer spesifikt brukes den til å sammenligne to sett med data eller strenger og bestemme om de er like eller har noen forskjeller.

Denne bloggen vil dekke følgende aspekter:

  • Hva er XOR i Python?
  • Hvordan fungerer XOR i Python?
  • Xor sannhetstabell
  • Hvordan xor to strenger i python?
  • Relevante saksscenarier

Hva er XOR i Python?

I Python, “Xor”Eller“Eksklusiv eller”Er en operatør som sammenligner to binære tall bitvis. Denne operatøren kommer tilbake “0”Hvis begge bitene er de samme. Ellers gir det ut "1”I tilfelle begge verdiene er forskjellige. Pythons innebygde XOR-operatør tillater oss å logisk kombinere to verdier ved hjelp av den eksklusive eller operasjonen.

Hvordan fungerer XOR i Python?

XOR -operatøren er representert som “^”I Python, og det følger den gitte syntaks:

xor_number = x ^ y

Her, “x ”og“ y”Angi de binære tallene,”^”Representerer XOR -operatøren, og“xor_number”Lagrer den resulterende boolske verdien.

Xor sannhetstabell

For å vite mer om XOR -operatørens arbeid, se på den gitte tabellen:

x y x ^ y
0 0 0
0 1 1
1 0 1
1 1 0

Hvordan xor to strenger i python?

Siden XOR er en bitvis operatør, kan den bare fungere på heltall. For å utføre XOR -operasjonen mellom to strenger, er det imidlertid påkrevd å konvertere dem til sine respektive ASCII/Unicode -verdier ved å bruke "ord ()”Funksjon og bruk deretter“^”Operatør.

Tre hovedscenarier eksisterer når du vurderer XOR -operatørens implikasjon av strengverdier:

  • Tilfelle 1: Begge strengene inneholder binære verdier.
  • Sak 2: Begge strengene består av tegn.
  • Sak: 3: Én streng er basert på heltall/binære verdier, og den andre inneholder tegn.

La oss praktisk talt demonstrere de uttalte sakene!

Sak 1: Bruk XOR på to strenger med binære verdier

For å bruke XOR -operatøren på to strenger som har binære verdier, initialiserer dem først som følger:

String1 = "0100100"
String2 = "1001010"

Legg nå til følgende linjer:

resultat = [(ord (a) ^ ord (b)) for a, b i zip (streng1, streng2)]
trykk (resultat)

I henhold til den gitte koden:

  • Påkalle “glidelås()”Funksjon med“til”Loop for å lage par karakterer”A ”,“ B", fra "String1”Og“String2”.
  • Hvert generert par blir deretter sendt til "ord ()”Funksjon for å konvertere dem til sine respektive ASCII -verdier.
  • ^”Utfører XOR -operasjonen på de konverterte ASCII/Unicode -verdiene og legger dem til listen.
  • Til slutt lagres den resulterende verdien i "resultat”Variabel og vist ved hjelp av“skrive ut()”Funksjon:

Det kan observeres at for hver indeks av begge strengene, utgjør XOR -operatøren “0”, Og for forskjellige verdier,“1”Er returnert.

Sak 2: Bruk XOR på to strenger med tegn

Nå brukes XOR -operatøren på to strenger som har følgende karakterverdier:

String1 = "To"
String2 = "Ten"
resultat = [(ord (a) ^ ord (b)) for a, b i zip (streng1, streng2)]
trykk (resultat)

I dette tilfellet "ord ()”Funksjon returnerer ASCII -verdien for hver generert og overfører dem til“^”for å utføre XOR -operasjonen:

En annen enkleste måte å huske arbeidet med denne saken er når "ord ()”Funksjon returnerer ASCII -verdien for hvert par, XOR -operatøren sender ut deres trukket verdi.

For eksempel:

  • Den første karakteren til begge strengene er “t”, Hvis ASCII -verdi er“116”, Så XOR-operatøren kom tilbake 0 (116-116).
  • Den andre karakteren til den første strengen er "w”Med ASCII -verdien”119”, Og for den andre strengen,“e”Karakter eksisterer på samme indeks som har ASCII -verdi”101”. Derfor sendes XOR-operatøren 18 (119-101).
  • For den siste biten inneholder den første strengen “o”Med ASCII -verdi”111,”Og den andre strengen omfatter”n”Å ha“110”ASCII -verdi. Som et resultat returnerte XOR-operatøren 1 (111-110).

Sak 3: Bruk XOR på to når en streng inneholder tegn, og den andre er basert på heltall/binære verdier

Siste sak i den pågående diskusjonen er når en streng inneholder tegn, for eksempel "to”, Og den andre består av heltall eller binære verdier, som“111”:

String1 = "To"
String2 = "111"
Resultat = [Chr (ord (a) ^ ord (b)) for a, b i zip (streng1, streng2)]
trykk (resultat);

Her fungerer koden på samme måte som det andre tilfellet. Bortsett fra at de returnerte ASCII -verdiene er konvertert til de respektive tegnene ved å bruke “Chr ()”Python -funksjon:

Den returnerte listen representerer tegnene til de tilsvarende ASCII -verdiene.

Konklusjon

I Python, xor “^”Returnerer”0”Hvis begge bitene er de samme. Ellers gir det ut "1”. Imidlertid omfatter begge strengene tegn, verdier blir konvertert til deres ASCII -representasjon ved å bruke "ord ()”Funksjon, og deretter brukes XOR -operatøren. Den samme operasjonen utføres når begge strengene inneholder forskjellige datatyper, som tegn og heltall. Bare differensieringen er å påkalle "Chr ()”Funksjon for å få den resulterende verdien i tegn. Denne bloggen demonstrerte hvordan du XOR to strenger i Python.