Table des matières
Logique XOR
Énoncé du problème
Exemple
Méthode
pseudocode
Sortie
Analyse
Conclusion
Maison développement back-end C++ Ajustez les longueurs de représentation binaire de deux nombres pour qu'elles soient égales, puis effectuez une opération XOR

Ajustez les longueurs de représentation binaire de deux nombres pour qu'elles soient égales, puis effectuez une opération XOR

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

Ajustez les longueurs de représentation binaire de deux nombres pour quelles soient égales, puis effectuez une opération XOR

XOR, ou OU exclusif, est une opération logique booléenne utilisée pour générer des bits de parité pour la vérification des erreurs, la tolérance aux pannes, etc. Différents symboles sont utilisés pour représenter cette opération : ^, ⊕, ⊻, etc.

Logique XOR

L'opération XOR n'est vraie que si les deux paramètres sont différents. En d’autres termes, le XOR des mêmes bits est 0 et le XOR des différents bits est 1.

Mêmes morceaux -

0^0=0

1^1=0

Différents morceaux −

0^1=1

1^0 = 1

Énoncé du problème

Étant donné deux nombres a et b, trouvez leur XOR après avoir égalisé les longueurs de leurs représentations binaires.

Astuce - En ajoutant un zéro final après le plus petit nombre, la représentation binaire deviendra égale.

Exemple

Entrez -

a = 10, b = 5

Sortie-

0

Instructions

La représentation binaire de 10 est 1010 et la représentation binaire de 5 est 101.

Ajoutez le zéro final à 5 ​​pour obtenir 1010.

Par conséquent, le résultat XOR de 1010^1010 est 0.

Par conséquent, sortie.

Entrez -

a = 15, b = 8

Sortie

7

Instructions -

La représentation binaire de 15 est 1111 et la représentation binaire de 8 est 1000.

Étant donné que les deux représentations binaires sont de longueur égale, il n'est pas nécessaire d'ajouter des zéros à droite.

Le résultat XOR de

1111 ^ 1000 est 0111, soit 7 en notation décimale. Le résultat est donc 7.

Entrez -

a = 15, b = 3

Sortie

7

Instructions -

La représentation binaire de 15 est 1111. La représentation binaire de 3 est 11. La représentation binaire de 3, avec un zéro final, devient 1100.

Le résultat XOR de 1111^1100 est 0011.

0011 vaut 3 en représentation décimale. Par conséquent, le résultat est affiché.

Méthode

  • Comptez le nombre de chiffres dans deux nombres.

  • Le nombre de chiffres peut être calculé en décalant le nombre vers la droite jusqu'à ce qu'il devienne zéro et en comptant le nombre de fois que la boucle est exécutée. Décaler un nombre d’une case vers la droite équivaut à le diviser par 2.

  • Si le plus petit nombre a moins de chiffres, effectuez le décalage vers la gauche comme suit : plus petit_numéro

  • XOR deux nombres pour obtenir la réponse et l'imprimer.

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.
Copier après la connexion

Exemple

Vous trouverez ci-dessous un programme C++ permettant de calculer la valeur XOR de deux nombres après avoir rendu leurs représentations binaires égales en longueur.

#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;
}
Copier après la connexion

Sortie

a = 15, b = 3
XOR of a and b: 3
Copier après la connexion

Analyse

Complexité temporelle - O(log n) [logarithme]

En raison de la boucle while dans la fonction count, la complexité temporelle est logarithmique.

Puisque ce nombre est divisé par deux jusqu'à devenir zéro, la complexité devient log n base 2.

Complexité spatiale - O(1) [Constante]

La complexité de l'espace est constante car aucun espace supplémentaire n'est utilisé dans le programme.

Conclusion

Dans cet article, nous avons discuté du problème du calcul du XOR de deux nombres après avoir rendu leurs représentations binaires de longueur égale.

Nous avons discuté du concept de XOR puis expliqué des exemples et des méthodes. Cette méthode utilise des zéros à droite pour égaliser le nombre de bits dans la représentation binaire. Nous avons également vu du pseudocode et un programme C++ pour le problème.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment calculer l'arithmétique binaire Comment calculer l'arithmétique binaire Jan 19, 2024 pm 04:38 PM

L'arithmétique binaire est une méthode d'opération basée sur les nombres binaires. Ses opérations de base comprennent l'addition, la soustraction, la multiplication et la division. En plus des opérations de base, l'arithmétique binaire comprend également les opérations logiques, les opérations de déplacement et d'autres opérations. Les opérations logiques incluent AND, OR, NOT et d'autres opérations, et les opérations de déplacement incluent les opérations de décalage vers la gauche et vers la droite. Ces opérations ont des règles et des exigences d’opérandes correspondantes.

Quelles sont les deux améliorations majeures d'EDVAC ? Quelles sont les deux améliorations majeures d'EDVAC ? Mar 02, 2023 pm 02:58 PM

EDVAC présente deux améliorations majeures : l'une est l'utilisation du binaire et l'autre est l'achèvement du programme stocké, qui peut automatiquement passer d'une instruction de programme à la suivante, et ses opérations peuvent être automatiquement complétées par des instructions. Les « instructions » incluent les données et les programmes qui sont entrés dans le dispositif de mémoire de la machine sous forme de codes, c'est-à-dire que le même dispositif de mémoire qui stocke les données est utilisé pour stocker les instructions permettant d'effectuer des opérations. -appelés programmes stockés.

Comment convertir du binaire en hexadécimal en utilisant le langage C ? Comment convertir du binaire en hexadécimal en utilisant le langage C ? Sep 01, 2023 pm 06:57 PM

Les nombres binaires sont représentés par des 1 et des 0. Le système numérique hexadécimal 16 bits est {0,1,2,3…..9,A(10),B(11),…F(15)} afin de convertir la représentation binaire en hexadécimal Représente que le bit L'ID de chaîne est regroupé en morceaux de 4 bits, appelés quartets en commençant par le côté le moins significatif. Chaque bloc est remplacé par le nombre hexadécimal correspondant. Voyons un exemple pour bien comprendre la représentation des nombres hexadécimaux et binaires. 001111100101101100011101 3 E 5 Chambres d'hôtes

Comment lire des fichiers binaires dans Golang ? Comment lire des fichiers binaires dans Golang ? Mar 21, 2024 am 08:27 AM

Comment lire des fichiers binaires dans Golang ? Les fichiers binaires sont des fichiers stockés sous forme binaire contenant des données qu'un ordinateur peut reconnaître et traiter. Dans Golang, nous pouvons utiliser certaines méthodes pour lire des fichiers binaires et les analyser dans le format de données souhaité. Ce qui suit présentera comment lire des fichiers binaires dans Golang et donnera des exemples de code spécifiques. Tout d’abord, nous devons ouvrir un fichier binaire à l’aide de la fonction Open du package os, qui renverra un objet fichier. Ensuite, nous pouvons faire

Quelle est la principale raison de l'utilisation du binaire dans les ordinateurs ? Quelle est la principale raison de l'utilisation du binaire dans les ordinateurs ? Apr 04, 2019 pm 02:25 PM

Les principales raisons pour lesquelles les ordinateurs utilisent des systèmes binaires : 1. Les ordinateurs sont composés de circuits logiques. Les circuits logiques n'ont généralement que deux états, l'interrupteur est activé et désactivé, et ces deux états peuvent être représentés par « 1 » et « 0 » ; Seuls deux nombres, 0 et 1, sont utilisés dans le système binaire, ce qui est moins sujet aux erreurs lors de la transmission et du traitement, garantissant ainsi une grande fiabilité de l'ordinateur.

Apprenez facilement à convertir l'hexadécimal en binaire en langage Go Apprenez facilement à convertir l'hexadécimal en binaire en langage Go Mar 15, 2024 pm 04:45 PM

Titre : Apprenez facilement à convertir de l'hexadécimal en binaire en langage Go. Des exemples de code spécifiques sont nécessaires. En programmation informatique, des opérations de conversion entre différents nombres de base sont souvent impliquées. Parmi eux, la conversion entre hexadécimal et binaire est relativement courante. Dans le langage Go, nous pouvons réaliser une conversion hexadécimale en binaire grâce à quelques exemples de code simples. Apprenons ensemble. Tout d’abord, jetons un coup d’œil aux méthodes de représentation hexadécimale et binaire. L'hexadécimal est une méthode de représentation des nombres, utilisant 0-9 et A-F pour représenter 1.

Quelle est la limite de longueur du tableau PHP ? Quelle est la limite de longueur du tableau PHP ? Mar 13, 2024 pm 06:30 PM

Il n'y a pas de limite fixe à la longueur d'un tableau en PHP, elle peut être ajustée dynamiquement en fonction de la taille de la mémoire du système. En PHP, un tableau est une structure de données très flexible qui peut stocker n'importe quel nombre d'éléments, et chaque élément peut être une valeur de n'importe quel type, ou même un autre tableau. La limite de longueur des tableaux PHP dépend principalement de la taille de la mémoire du système et de la limite de mémoire de la configuration PHP. De manière générale, si la mémoire du système est suffisamment grande et que la limite de mémoire de PHP est suffisamment élevée, la longueur du tableau peut être très grande. Cependant, si votre système manque de mémoire ou

Comment exprimer des nombres négatifs en binaire Comment exprimer des nombres négatifs en binaire Nov 23, 2023 pm 04:11 PM

Les nombres négatifs sont représentés dans les ordinateurs en utilisant le complément à deux, c'est-à-dire que les nombres négatifs sont représentés par le complément à deux des nombres positifs.

See all articles