2009-03-12 4 views
3

이 코드 conpile 때 : 나는이 개 논리 값에 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; 

. moreBits에서 true으로 설정하지 않으므로 기본값은 all-false입니다. 나는 복사/붙여 넣기를 비난한다!

편집 : 짧은 시간에 켄트에게이 편지를 쓰는 데 걸리는 시간이 8 시간이었습니다.

+0

+1 ... awww .. 우린 모두 거기에 있었어 친구 :) –