排他的論理和の計算をするには?

解決


素人志向  2004-01-21 15:08:47  No: 111491  IP: [192.*.*.*]

Asc 関数を使ってASCIIコードを返し、1文字ごとビット変換しに
排他的論理和をとるというようなことをしたいんですが
どうしたらいいでしょうか?
例えば
data = "R5672"というようなデータがあるとき


  ASCIIコード
  R  52  0101  0010   
  5  35  00110101
  6  36  0011  0110
  7  37  0011  0111
  2  32  0011  0010

EOR計算結果    0101  0100

16進変換  data2 =    5      4

このような値を取得するにはどのようにすればいいのでしょうか?
どなたか教えてくださいお願いします。

編集 削除
岡田 之仁  2004-01-21 17:46:51  No: 111492  IP: [192.*.*.*]

簡単に書けば・・・

Debug.Print hex$((((asc("R") xor asc("5")) xor asc("6")) xor asc("7")) xor asc("2"))

プログラムにすれば・・・

    Dim sz As String
    Dim g As Integer
    Dim c As Integer
    Dim i As Integer
    
    sz = "R5672"
    
    c = Asc(Left$(sz, 1))
    
    g = c
    
    For i = 2 To Len(sz)
        c = Asc(Mid$(sz, i, 1))
        g = g Xor c
    Next i

    Debug.Print Hex$(g)

※  きれいなコードではありませんが、結果が得られます。

以上。

編集 削除
素人志向  2004-01-22 10:24:26  No: 111493  IP: [192.*.*.*]

解決することができました。
岡田 之仁さんありがとうございました。

編集 削除