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

投稿日: 2002/11/29(Fri) 17:24
投稿者batchman
Eメールbatchman@ae.wakwak.com
URL
タイトルRe^5: BCDのデータを扱うには

> 60ビットのデータで先頭4桁と14番目から4桁を取得して
> 値がいくつになるか

たとえVariant型といえど、60Bitという半端なBitは格納できません。8Bit×8Byteで64Bitのはずです。
vBytBCDにはどのようにデータをセットしているのでしょうか?

> 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
> でいいのですか

BCDというのは、2進化10進符号で4Bit単位で1桁を表すわけですが、14番目というのは14Bit目ですか?
4Bit境界になってませんが...Sourceの17Bitのほうかな?

vBytBCDがどのように入っているか分からないので、
60BitがByte型の8Byteの配列に入っているとみなして...

Function aaa(bytBCD() as Byte) as Byte

    Dim bytHigh As Byte
    Dim bytLow As Byte

    '先頭4Bit取得
    bytHigh = bytBCD(0) \ (2 ^ 4)

    '17Bit目から4Bit取得
    bytLow =  bytBCD(2) \ (2 ^ 4)

    aaa = bytHigh + bytLow

End Function


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

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

- Web Forum -