سؤال

عند I conpile هذا الرمز:

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);
}

وأحصل على الإخراج التالية:

<اقتباس فقرة>   <اقتباس فقرة>     

وصحيح صحيح صحيح

  

وعندما أفعل لXOR على اثنين من القيم المنطقية بالقول صحيح ^ صحيح أحصل كاذبة.

هل هناك شيء خاطئ مع التعليمات البرمجية. كانت ذاكرتي من جدول الحقيقة لXOR أن صحيح XOR صحيح غير صحيح.

هل كانت مفيدة؟

المحلول

ونسخ ولصق خطأ.

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

وهذا يجب أن تكون:

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

نصائح أخرى

وأنت وضع bits إلى true مرتين. لم تكن إعدادات moreBits إلى true، وذلك لأنه تخلف عن جميع false. أنا ألوم نسخ / لصق!

وتحرير: في وقت قصير استغرق الأمر مني أن أكتب الإجابة على هذا كينت، وحصلت على upvoted 8 مرات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top