9
votes

Xor de seulement ou et et et

Comment faites-vous le fonctionnement des bits XOR si vous n'avez que disponible le et les opérations ou les opérations?


6 commentaires

Je suis à peu près sûr que vous n'avez pas besoin aussi bien.


@Oded Nope, je veux juste savoir. Je programmment dans un environnement de script qui n'a qu'à seulement et ou, mais ni non ni xor, et j'ai besoin de Xor. Vous êtes sûr que les gars de Stackoverflow sont primés à juger quelque chose comme devoirs. De plus, je ne comprends pas ce lien, je l'avais déjà examiné avant de poster la question.


Je suis à peu près sûr que vous avez besoin de ne pas créer de xor = (a &&! B) || (! A && B) est le moyen le plus simple de le mettre


Vous n'avez pas besoin de sinon ce n'est pas possible. Si cela n'a pas (quel environnement de script est-ce que ne n'a pas n'est pas une omission assez fondamentale) - vous devriez simplement être capable d'utiliser une logique conditionnelle pour inverser le bit ... si (x == 0) x = 1 , il devrait être simple.


Non pas? Sérieusement? Ce n'est pas drôle. (Oh ana @nixon: ni ne fonctionne aussi; mais ce n'est pas amusant avec Nand et ni)


Est-il permis d'utiliser des opérateurs arithmétiques, tels que + et - ? Si oui, voyez ma réponse ci-dessous ...


11 Réponses :


-3
votes

Meilleur conseil consiste à rechercher Xor dans les manuels de référence et aux sites Encyclopédie sur le net, puis écrivez le code ou le script qui fait la même manière que la description de la fonction intégrée XOR et utilisez vos propres valeurs de retour ou d'état. Nous ne pouvons pas vous dire comment faire ce type de bit se compare de la communauté logicielle.


0 commentaires

-1
votes

Je suis sûr que la formule ci-dessous est correcte:

un xor b = pas ((a et b) ou non (A + B))


1 commentaires

Lisez la question à nouveau. Pas n'est pas disponible.



14
votes

table de vérité pour et xxx pré>

table de vérité pour ou p> xxx pré>

table de vérité pour xor p> xxx

donc, XOR est comme ou, sauf que c'est faux si A et B sont tristes. p>

SO, (A ou B) et (non (A et B) et (non (A et B)), ce qui est (A ou B) et (une NAND B) P>

  A  B  OR  AND NAND [(A OR B) AND (A NAND B)]
  T  T  T    T    F        F
  T  F  T    F    T        T
  F  T  T    F    T        T
  F  F  F    F    T        F
  


2 commentaires

Je pense que nous savons tous ce que ces opérations font une façon dont leurs tables de vérité ressemblent. La question est que pouvez-vous combiner les deux premiers pour former la troisième, et si oui, comment?


Je commençais ma réponse dans le cas où c'était des devoirs. Être une direction plutôt qu'une réponse. Je ne pense pas que cela puisse être fait.



2
votes

L'entrée de Wikipedia sur XOR passe en détail en détail. Probablement un bon premier endroit pour vérifier avant de se pencher une question.

Si vous avez déjà des morceaux, vous ne vous souciez pas de masqué, il me semble le moyen le plus simple de le faire (dans la mesure où écrire le code va de toute façon) utiliser simplement votre opérateur non égal.


0 commentaires

4
votes

Création de ma propre langue de script - Chrisscript - Vous avez juste besoin de quelque chose comme:

#!/bin/chrish

bit XOR (bit A, bit B)
{
   bit notA;
   bit notB;

   IF (A == 0) notA = 1 ELSE notA = 0;
   IF (B == 0) notB = 1 ELSE notB = 0;

   F = ((A && notB) || (notA && B));

   RETURN F;
}


3 commentaires

Un environnement JavaScript très limité.


De plus, j'ai besoin de le faire INT par INT, pas un peu à peu, car je ne peux pas obtenir de bits individuels, faute d'opérateurs de bits changeants.


Définir "très limité" - avez-vous le moteur JavaScript actuel que vous utilisez (par exemple, Microsoft Jscript)? Cette partie de certaines choses exclusives est-elle, si oui, quel produit et version? Ce serait bien d'avoir autant d'informations sur votre environnement que possible.



3
votes

Si vous avez des opérateurs arithmétiques tels que + et - en plus de Bitwise et ( & ) et ou ( | < / Code>) Ensuite, vous pouvez faire le bitwise xor comme ceci: xxx

La raison pour laquelle cela fonctionne est que nous faisons une ajout complète, ce qui équivaut à XOR lorsque la somme de la position du bit d'Amy est <= 1, puis nous corrigeons pour le cas où un port est généré (1 + 1) en soustrayant 2 * (A & B) .

Notez que Cela fonctionne même lorsque le débordement des termes intermédiaires, en supposant que nous avons des entiers «normalement comportés» (complément de 2, modulo 2 enveloppant pour débordement, etc.).



1
votes

in c: x ^ y = (x & ~ y) | (~ x & y)


0 commentaires

4
votes

"Les systèmes ({t, f} et) et ({t, f} ou) sont des monoïdes."

"Le système ({T, F}, XOR) est un groupe abélien" qui a la propriété d'invertibilité contrairement aux monoïdes.

donc, "et" et "ou" ne pas construire "XOR 'opération"

Source: https://fr.wikipedia.org/wiki/exclusive_or#relation_to_modern_algebrale


0 commentaires

3
votes

(un xor b) = ((a ou b) - (A et B) - (A et B)) CODE> ou, en d'autres termes, le jeu Union moins le jeu d'intersection.

exemple de code (dans JavaScript): P>

var a = 5;
var b = 12;
var xor = (a | b) - (a & b); // result: 9


0 commentaires

0
votes

dans Python

...:def xor(a,b):
...:     c = (not a) and b
...:     d = (not b) and a
...:     e = not c
...:     f = not d
...:     g = e and f
...:     h = not g
...:     return h


0 commentaires

0
votes
  PrintF('%-10s XOR',[inttobinbyte((10 OR 12)-(12 AND 10))])



00000110  XOR



0 commentaires