2012-05-13 9 views
0

2バイト配列の違いを返す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文を交換する方法を見つけるために期待していた:私はこれまでのところ、これを持っていますか?

もう一度このコードを最適化してできるだけ早く実行する方法がありますか?

最終的には、このコードを使用して2つの文字列をバイト配列との間で変換することで比較したいと思います。その点について私が知っておくべきことがあれば役立つでしょう。

+1

ここで大きな画像の文脈を私たちに教えてもらえると助かります。なぜ文字を比較するのではなく、文字列をバイトに変換したいのですか? –

+1

「文字列の差分」を探している場合は、[この回答](http://stackoverflow.com/questions/208094/how-to-find-difference-between-two-strings)をチェックしてください。 –

+1

ユニコードとマルチバイトのエンコードを検討していますか?文字はバイトではないため、いくつかの文字は複数のバイトにまたがることがあります。 –

答えて

1

等価演算子はビットを操作します。
等号演算子を改善するビット単位のブードーマジックはありません。

+0

申し訳ありません、私はおそらくJonが言ったような文字を使って再設計します –

関連する問題