2012-05-13 2 views
0

두 바이트 배열의 차이를 반환하는 배열에서 각 바이트를 비교하고 두 번째 바이트가 첫 번째 바이트와 다른 경우이를 반환하는 C# 메서드를 작성하려고합니다. 이 할 수있는 방법이 있나요 ...C#은 비트 연산을 사용하여 바이트를 비교합니다.

 byte[] b1 = 111; 
     byte[] b2 = 105; 

     int j = input.Length; 

     byte[] differenceByte = new byte[j]; 

     int diffIndex = 0; 

     for (int i = 0; i < j; i++) 
     { 
      if (originalByte[i] != comparisonByte[i]) 
       differenceByte[diffIndex++] = comparisonByte[i]; 
     } 

하지만 일부 비트 부두 마법 두 번째로 첫 번째 바이트를 비교 if 문을 대체 할 수있는 방법을 찾으려했다 : 나는 지금까지이 있나요?

두 번째 질문은 가능한 빨리 실행되도록이 코드를 최적화하는 다른 방법이 있습니까?

문자열을 바이트 배열로 변환하여 두 문자열을 비교하는 데 궁극적으로이 코드를 사용하고 싶습니다. 따라서이 점에 대해 알아야 할 것이 있으면 도움이 될 것입니다.

+1

큰 그림을 더 많이 전달할 수 있다면 도움이 될 것입니다. 왜 문자를 비교하는 대신 문자열을 바이트로 변환하고 싶습니까? –

+1

"문자열 비교"를 찾으려면 [이 답변] (http://stackoverflow.com/questions/208094/how-to-find-difference-between-two-strings)을 확인하십시오. –

+1

유니 코드 및 멀티 바이트 인코딩을 고려하고 있습니까? 문자는 바이트가 아니므로 일부 문자는 여러 바이트로 확장 될 수 있습니다. –

답변

1

등호 연산자는 비트를 연산합니다.
평등 연산자를 향상시킬 비트 단위의 부두 마술이 없습니다.

+0

좋아요, Jon이 말한 것과 같은 캐릭터를 사용하여 재 설계 할 것입니다. –

관련 문제