2進数の0か1かの判定
投稿者 太郎冠者  (社会人)
投稿日時
2009/5/18 10:58:08
9bit目ってどっちから?
右からなら
0000001000000000
でマスク(AND演算)すればいいよ。
マスクした結果(0か1)がそのまま「9Bitめが0か1か」になるから。
逆なら「1」の場所をずらしてね。
詳しく知りたかったら「ビット演算」でググってみてよ。
右からなら
0000001000000000
でマスク(AND演算)すればいいよ。
マスクした結果(0か1)がそのまま「9Bitめが0か1か」になるから。
逆なら「1」の場所をずらしてね。
詳しく知りたかったら「ビット演算」でググってみてよ。
投稿者 太郎冠者  (社会人)
投稿日時
2009/5/18 10:59:39
あれ、ずれてる。
× 0000001000000000
○ 0000000100000000
× 0000001000000000
○ 0000000100000000
投稿者 ヴァン  (社会人)
投稿日時
2009/5/19 05:06:54
シリアル受信との事ですが、lsbファーストでしょうか?
また、データは文字列でしょうか?
シリアルで受信したデータなので文字列と仮定しちゃいますね。
左側からなら、n番目(ビットの位置)を SubString で1文字取り出せば良いと思います。
右側からなら、長さ-1からn番目を SubString で1文字取り出せば良いと思います。
また、データは文字列でしょうか?
シリアルで受信したデータなので文字列と仮定しちゃいますね。
左側からなら、n番目(ビットの位置)を SubString で1文字取り出せば良いと思います。
右側からなら、長さ-1からn番目を SubString で1文字取り出せば良いと思います。
投稿者 lever  (学生)
投稿日時
2009/5/19 08:05:48
太郎冠者さん、ヴァンさん、返信ありがとうございます。
受信したデータは、送信した機器から見れば2進数を送っているはずです。(送信機器:三●電機PLC)
それと下位ビット先です。
受信したデータは
Dim strData As String = Convert.ToString(ivalue, 2).ToUpper()
というかんじで2進数に変換しております。
早速2通りとも試してみたいと思います。これからもアドバイスをよろしくお願いします。
受信したデータは、送信した機器から見れば2進数を送っているはずです。(送信機器:三●電機PLC)
それと下位ビット先です。
受信したデータは
Dim strData As String = Convert.ToString(ivalue, 2).ToUpper()
というかんじで2進数に変換しております。
早速2通りとも試してみたいと思います。これからもアドバイスをよろしくお願いします。
ど素人なもので受信ができても判定の仕方がわかりません。
「0011010100000000」という数値が受信されたとして、9Bitめが0か1かの判定結果によって
ある動作をするみたいな感じです。
もしよろしかったら教えてください、お願いします。