Question

Quand j'empile ce code:

BitArray bits = new BitArray(3);
bits[0] = true;
bits[1] = true; 
bits[2] = true;

BitArray moreBits = new BitArray(3);
bits[0] = true;
bits[1] = true;
bits[2] = true;

BitArray xorBits = bits.Xor(moreBits);

foreach (bool bit in xorBits)
{
Console.WriteLine(bit);
}

Je reçois le résultat suivant:

  
    

Vrai Vrai Vrai

  

Quand je fais un xor sur deux valeurs booléennes en disant vrai ^ vrai je deviens faux.

Le code contient-il un problème? Mon souvenir de la table de vérité pour XOR était que True XOR True est faux.

Était-ce utile?

La solution

Erreur de copier / coller.

BitArray moreBits = new BitArray(3);
bits[0] = true;
bits[1] = true;
bits[2] = true;

Cela devrait être:

BitArray moreBits = new BitArray(3);
moreBits[0] = true;
moreBits[1] = true;
moreBits[2] = true;

Autres conseils

Vous définissez deux fois bits sur true . Vous ne définissez pas moreBits sur true , la valeur par défaut est all- false . Je blâme copier / coller!

EDIT: dans le peu de temps qu’il m’a fallu pour écrire ceci, Kent a répondu et a été voté 8 fois!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top