2009-03-12 6 views
3

私はこのコードconpileた場合:私はことにより、2つのブール値でXORを行うとC#でBitArraysに問題がありますか?

真真真

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の真理値表の私の記憶は、True XOR Trueが偽であるということでした。

+0

C#やJavaのようなフレームワークは、他の多くの人が使ってテストしているので、ほとんど決まっていません。常に自分のコードをチェックしてください。この場合、ケントの答えがそれをカバーしています。 – Keith

+0

ええ私はそれを気づいたら質問を削除しようとしましたが、彼の答えが投票されたので削除できません。誰かがそれを閉じます。 –

+1

なぜこれが投票されていますか? –

答えて

27

コピー&ペーストエラー。あなたが二回truebitsを設定している

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

そこに行って、それを行った。そしてあなたのキャリアの早い段階で一度だけエラーを繰り返すことはありません。あなたのモニターの後ろにgremlinsが永遠に潜んでいるので、瞬時に集中して集中するのを待ってください。 ;) –

6

:あるべき

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

moreBitstrueの設定ではないため、デフォルトでall-falseに設定されています。私はコピー/ペーストを責めます!

編集:短時間で私はケントにこれを書いてもらいましたが、答えは8回アップしました!

+0

+1 ... awww ..私たちはすべてそこにされている:) –

関連する問題