هل هناك شيء خاطئ مع BitArrays في C #؟
سؤال
عند 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 مرات
لا تنتمي إلى StackOverflow