VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2002/11/29(Fri) 15:31
投稿者たけ
Eメールaaa
URL
タイトルRe^4: BCDのデータを扱うには

> > Byte型は1バイト(8ビット)でなんで
> > > bytHigh = bytBCD \ 16
> > で上位4ビットなのでしょうか?
>
> VBでビットシフト演算子があればよいのですが、無いので割り算で代用です。
> 2で割ると右に1つビットシフトしていると考えれば、4つ移動するには2×2×2×2で16です。
>
> もしかして、ビット列が
> 11110101だった場合に、00001111じゃなくて、11110000にしたい?
> それなら、
> bytHigh = (bytBCD \ 16) * 16
> です。

っということはこういう事でいいでしょうか?
60ビットのデータで先頭4桁と14番目から4桁を取得して
値がいくつになるか
Sub aaaa(vBytBCD As Variant)
'vByBCDには60ビット分のSignalがある
Dim bytHigh As Byte
Dim bytLow As Byte
Dim vBytBCD2 As Variant

'先頭4桁のビット取得
bytHigh = vBytBCD \ (2 ^ 4)

'14番目から4桁のビット取得
vBytBCD2 = vBytBCD \ (2 ^ 17)
bytLow = vBytBCD2 Mod 16

End Sub
でいいのですか


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -