投稿日 | : 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