7ビットデータに偶数パリティを付加した8ビットデータを作成したいのですが。パリティの計算が下記方法だとうまくいきません。
ビット演算の使用法が間違っているのでしょうか?
dim a as byte
dim Msg_Txt as string
a = AscB(Msg_Txt)
If 1 = a And &H1 Then ’0000 0001 チェック
Cnt = Cnt + 1
End If
If &H2 = a And &H2 Then ’0000 0010 チェック
Cnt = Cnt + 1
End If
・
・
うまくカウント出来ません。
演算子の優先順位について調べて下さい。
If &H2 = a And &H2 Then
と書いた場合
If (&H2 = a) And &H2 Then
と同じ意味ですよ。
If &H2 = (a And &H2) Then
としたいのではないですか?
とろさんありがとうございます。優先順位を考慮する必要があるんですね。
新たな問題が有るんですが。
h’04(EOT)を上記ソフトで変換するとh’84となり、
chr(&h84)ではうまく転送する事が出来ません。これは、文字コードに&h84が登録されてないからだと思うのですが。うまい方法は有りませんか?
>h’04(EOT)を上記ソフトで変換するとh’84となり、
>chr(&h84)ではうまく転送する事が出来ません。
バイト型の配列に落とせば?
あと、ビットマスク演算だけど、結果が0かビット位になるから等号はいらないんじゃ?
質問とは関係ありませんが、
Forループでビット検出された方が良いと思います。