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

解決


素人志向  2004-01-22 00:08:47  No: 111491

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-22 02:46:51  No: 111492

簡単に書けば・・・

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 19:24:26  No: 111493

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加