Inhaltsverzeichnis
XOR-Logik
Problemstellung
Beispiel
Methode
Pseudocode
Ausgabe
Analyse
Fazit
Heim Backend-Entwicklung C++ Passen Sie die Binärdarstellungslängen zweier Zahlen an, sodass sie gleich sind, und führen Sie dann eine XOR-Operation durch

Passen Sie die Binärdarstellungslängen zweier Zahlen an, sodass sie gleich sind, und führen Sie dann eine XOR-Operation durch

Sep 10, 2023 pm 04:01 PM
二进制 长度 异或

Passen Sie die Binärdarstellungslängen zweier Zahlen an, sodass sie gleich sind, und führen Sie dann eine XOR-Operation durch

XOR oder exklusives ODER ist eine boolesche Logikoperation, die zum Generieren von Paritätsbits für Fehlerprüfung, Fehlertoleranz usw. verwendet wird. Zur Darstellung dieser Operation werden verschiedene Symbole verwendet: ^, ⊕, ⊻ usw.

XOR-Logik

Die XOR-Operation ist nur wahr, wenn die beiden Parameter unterschiedlich sind. Mit anderen Worten, das XOR derselben Bits ist 0 und das XOR verschiedener Bits ist 1.

Gleiche Teile -

0^0=0

1^1=0

Verschiedene Bits −

0^1=1

1^0 = 1

Problemstellung

Bestimmen Sie für zwei gegebene Zahlen a und b deren XOR, nachdem Sie die Längen ihrer binären Darstellungen gleich gemacht haben.

Tipp − Durch Hinzufügen einer abschließenden Null nach der kleineren Zahl wird die Binärdarstellung gleich.

Beispiel

Eintreten -

a = 10, b = 5

Ausgabe-

0

Anleitung

Die binäre Darstellung von 10 ist 1010 und die binäre Darstellung von 5 ist 101.

Fügen Sie die nachgestellte Null zu 5 hinzu, um 1010 zu erhalten.

Daher ist das XOR-Ergebnis von 1010^1010 0.

Daher Ausgabe.

Eintreten -

a = 15, b = 8

Ausgabe

7

Anleitung -

Die binäre Darstellung von 15 ist 1111 und die binäre Darstellung von 8 ist 1000.

Da beide Binärdarstellungen gleich lang sind, müssen keine nachgestellten Nullen hinzugefügt werden.

Das XOR-Ergebnis von

1111 ^ 1000 ist 0111, was in Dezimalschreibweise 7 ist. Daher beträgt die Ausgabe 7.

Eintreten -

a = 15, b = 3

Ausgabe

7

Anleitung -

Die binäre Darstellung von 15 ist 1111. Die binäre Darstellung von 3 ist 11. Die binäre Darstellung von 3 mit einer nachgestellten Null wird zu 1100.

Das XOR-Ergebnis von 1111^1100 ist 0011.

0011 ist 3 in Dezimaldarstellung. Daher wird das Ergebnis ausgegeben.

Methode

  • Zählen Sie die Anzahl der Ziffern in zwei Zahlen.

  • Die Anzahl der Ziffern kann berechnet werden, indem man die Zahl nach rechts verschiebt, bis sie Null wird, und zählt, wie oft die Schleife ausgeführt wird. Das Verschieben einer Zahl um eine Stelle nach rechts entspricht einer Division durch zwei.

  • Wenn die kleinere Zahl weniger Ziffern hat, führen Sie die Linksverschiebung wie folgt durch: kleinere_Zahl

  • XOR zwei Zahlen, um die Antwort zu erhalten und sie auszudrucken.

Pseudocode

main()
Initialize a -> 15  and  b -> 3.
Function call find_xor(a,b);

find_xor(int a, int b):
c -> minimum of a and b.
d -> maximum of a and b.
count_c -> bit_count(c)
count_d ->bit_count(d)
If count_c < cound_d, then:
c -> c << (count_d - count_c)
Return c XOR d.

bit_count(int x):
count -> 0
while(x != 0):
	Increase the count by one.
	Right shift x by 1, i.e., divide it by 2.
Return x.
Nach dem Login kopieren

Beispiel

Unten finden Sie ein C++-Programm zur Berechnung des XOR-Werts zweier Zahlen, nachdem ihre binären Darstellungen in der Länge gleich gemacht wurden.

#include <bits/stdc++.h>
using namespace std;
// Function to count the number of bits in binary representation
// of an integer
int bit_count(int x){
   //Initialize count as zero
   int count = 0;
   //Count the bits till x becomes zero.
   while (x)	{
      //Incrementing the count
	  count++;
      // right shift x by 1
      // i.e, divide by 2
      x = x>>1;
   }
   return count;
}
//Function to find the XOR of two numbers. Trailing zeros are added to the number having a lesser number of bits to make the bits in both numbers equal.
int find_xor(int a, int b){
   //Store the minimum and maximum of both the numbers
   int c = min(a,b);
   int d = max(a,b);
   //Store the number of bits in both numbers.
   int count_c = bit_count(c);
   int count_d = bit_count(d);
   //If the number of bits in c is less, left shift if by the number of exceeding bits.
   if (count_c < count_d){
      c = c << ( count_d - count_c);
   }
   return (c^d);
}
//Driver code
int main(){
   //Initialize a and b.
   int a = 15, b = 3;
   cout << "a = 15, b = 3" << endl;
   //Store the XOR of both the numbers after required computations
   //Function call
   int ans = find_xor(a,b);
   //Print the final result
   cout << "XOR of a and b: "<<ans<<endl;
   return 0;
}
Nach dem Login kopieren

Ausgabe

a = 15, b = 3
XOR of a and b: 3
Nach dem Login kopieren

Analyse

Zeitkomplexität - O(log n) [Logarithmus]

Aufgrund der while-Schleife in der Zählfunktion ist die Zeitkomplexität logarithmisch.

Da diese Zahl durch zwei geteilt wird, bis sie Null wird, beträgt die Komplexität log n zur Basis 2.

Raumkomplexität - O(1) [Konstante]

Die Speicherplatzkomplexität ist konstant, da im Programm kein zusätzlicher Speicherplatz verwendet wird.

Fazit

In diesem Artikel haben wir das Problem der Berechnung des XOR zweier Zahlen besprochen, nachdem ihre binären Darstellungen in der Länge gleich gemacht wurden.

Wir haben das Konzept von XOR besprochen und anschließend Beispiele und Methoden erläutert. Diese Methode verwendet nachgestellte Nullen, um die Anzahl der Bits in der Binärdarstellung auszugleichen. Wir haben auch Pseudocode und ein C++-Programm für das Problem gesehen.

Das obige ist der detaillierte Inhalt vonPassen Sie die Binärdarstellungslängen zweier Zahlen an, sodass sie gleich sind, und führen Sie dann eine XOR-Operation durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So berechnen Sie die binäre Arithmetik So berechnen Sie die binäre Arithmetik Jan 19, 2024 pm 04:38 PM

Binäre Arithmetik ist eine Operationsmethode, die auf Binärzahlen basiert. Zu ihren Grundoperationen gehören Addition, Subtraktion, Multiplikation und Division. Die binäre Arithmetik umfasst neben Grundoperationen auch logische Operationen, Verschiebungsoperationen und andere Operationen. Zu den logischen Operationen gehören UND, ODER, NICHT und andere Operationen, und Verschiebungsoperationen umfassen Linksverschiebungs- und Rechtsverschiebungsoperationen. Für diese Operationen gelten entsprechende Regeln und Operandenanforderungen.

Wie konvertiert man mit der C-Sprache binär in hexadezimal? Wie konvertiert man mit der C-Sprache binär in hexadezimal? Sep 01, 2023 pm 06:57 PM

Binärzahlen werden durch Einsen und Nullen dargestellt. Das 16-Bit-Hexadezimalzahlensystem ist {0,1,2,3…..9,A(10),B(11),…F(15)}, um von der binären Darstellung in eine hexadezimale Darstellung umzuwandeln. Stellt das Bit dar Die Zeichenfolgen-ID ist in 4-Bit-Blöcke gruppiert, sogenannte Nibbles, beginnend mit der niedrigstwertigen Seite. Jeder Block wird durch die entsprechende Hexadezimalzahl ersetzt. Sehen wir uns ein Beispiel an, um ein klares Verständnis der Darstellung hexadezimaler und binärer Zahlen zu erhalten. 001111100101101100011101 3 E 5 B&nb

Was sind die beiden wichtigsten Verbesserungen von EDVAC? Was sind die beiden wichtigsten Verbesserungen von EDVAC? Mar 02, 2023 pm 02:58 PM

EDVAC weist zwei wesentliche Verbesserungen auf: Zum einen die Verwendung von Binärfunktionen und zum anderen die Vervollständigung des gespeicherten Programms, das automatisch von einer Programmanweisung zur nächsten fortschreiten kann und dessen Vorgänge automatisch durch Anweisungen abgeschlossen werden können. „Anweisungen“ umfassen Daten und Programme, die in Form von Codes in das Speichergerät der Maschine eingegeben werden. Das heißt, dasselbe Speichergerät, das Daten speichert, wird zum Speichern von Anweisungen zum Ausführen von Operationen verwendet -sogenannte gespeicherte Programme.

Wie lese ich Binärdateien in Golang? Wie lese ich Binärdateien in Golang? Mar 21, 2024 am 08:27 AM

Wie lese ich Binärdateien in Golang? Binärdateien sind in binärer Form gespeicherte Dateien, die Daten enthalten, die ein Computer erkennen und verarbeiten kann. In Golang können wir einige Methoden verwenden, um Binärdateien zu lesen und sie in das gewünschte Datenformat zu analysieren. Im Folgenden wird das Lesen von Binärdateien in Golang vorgestellt und spezifische Codebeispiele gegeben. Zuerst müssen wir eine Binärdatei mit der Open-Funktion aus dem Betriebssystempaket öffnen, die ein Dateiobjekt zurückgibt. Dann können wir machen

Was ist der Hauptgrund für die Verwendung von Binärdateien in Computern? Was ist der Hauptgrund für die Verwendung von Binärdateien in Computern? Apr 04, 2019 pm 02:25 PM

Die Hauptgründe, warum Computer Binärsysteme verwenden: 1. Logikschaltungen bestehen normalerweise nur aus zwei Zuständen: Der Schalter ist ein- und ausgeschaltet, und diese beiden Zustände können durch „1“ und „0“ dargestellt werden Im Binärsystem werden nur zwei Zahlen, 0 und 1, verwendet, was bei der Übertragung und Verarbeitung weniger fehleranfällig ist und somit eine hohe Zuverlässigkeit des Computers gewährleistet.

Lernen Sie ganz einfach, in der Go-Sprache Hexadezimalzahlen in Binärzahlen umzuwandeln Lernen Sie ganz einfach, in der Go-Sprache Hexadezimalzahlen in Binärzahlen umzuwandeln Mar 15, 2024 pm 04:45 PM

Titel: Einfaches Erlernen der Konvertierung von Hexadezimalzahlen in Binärzahlen in der Go-Sprache. Bei der Computerprogrammierung sind häufig Konvertierungsvorgänge zwischen verschiedenen Basiszahlen erforderlich. Unter ihnen ist die Konvertierung zwischen Hexadezimal und Binär relativ häufig. In der Go-Sprache können wir durch einige einfache Codebeispiele eine Hexadezimal-Binär-Konvertierung erreichen. Schauen wir uns zunächst die Darstellungsmethoden von Hexadezimal und Binär an. Hexadezimal ist eine Methode zur Darstellung von Zahlen, bei der 0-9 und A-F zur Darstellung von 1 verwendet werden

Wie hoch ist die Längenbeschränkung für PHP-Arrays? Wie hoch ist die Längenbeschränkung für PHP-Arrays? Mar 13, 2024 pm 06:30 PM

In PHP gibt es keine feste Begrenzung der Länge eines Arrays, sie kann dynamisch an die Speichergröße des Systems angepasst werden. In PHP ist ein Array eine sehr flexible Datenstruktur, die eine beliebige Anzahl von Elementen speichern kann, und jedes Element kann ein Wert eines beliebigen Typs oder sogar ein anderes Array sein. Die Längenbeschränkung von PHP-Arrays hängt hauptsächlich von der Speichergröße des Systems und der Speicherbeschränkung der PHP-Konfiguration ab. Wenn der Systemspeicher groß genug und das Speicherlimit von PHP hoch genug ist, kann die Länge des Arrays im Allgemeinen sehr groß sein. Wenn Ihr System jedoch nur noch wenig Arbeitsspeicher hat oder

Wie man negative Zahlen binär ausdrückt Wie man negative Zahlen binär ausdrückt Nov 23, 2023 pm 04:11 PM

Negative Zahlen werden in Computern durch das Zweierkomplement dargestellt, d. h. negative Zahlen werden durch das Zweierkomplement positiver Zahlen dargestellt.

See all articles