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
このような値を取得するにはどのようにすればいいのでしょうか?
どなたか教えてくださいお願いします。
簡単に書けば・・・
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)
※ きれいなコードではありませんが、結果が得られます。
以上。
解決することができました。
岡田 之仁さんありがとうございました。
ツイート | ![]() |