tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル受信したバイトデータ
記事No15168
投稿日: 2011/04/22(Fri) 23:44
投稿者クズットラ
受信したバイトデータを結合して16進数にしてそれを10進数にするにはどうすればいいですか?

たとえば下記を受信したとします。
vBuf(0)=0x30
vBuf(1)=0x31
vBuf(2)=0x41
vBuf(3)=0x38

これを0x01A8にしたいのです。

[ツリー表示へ]
タイトルRe: 受信したバイトデータ
記事No15169
投稿日: 2011/04/23(Sat) 03:53
投稿者Koz
> vBuf(0)=0x30
> vBuf(1)=0x31
> vBuf(2)=0x41
> vBuf(3)=0x38
> これを0x01A8にしたいのです。

バイト型の配列なら

Dim vBuf(3) As Byte
vBuf(0) = &H30
vBuf(1) = &H31
vBuf(2) = &H41
vBuf(3) = &H38
Debug.Print StrConv(vBuf, vbUnicode)
結果:"01A8"

な感じで文字列に出来ます。

MidB でこんな感じで切り出すことも出来ます。

Debug.Print StrConv(MidB(vBuf, 2, 2), vbUnicode)
結果:"1A"

あとは、"&H" を先頭に付加し、CInt などの関数で数値に変換します。

Debug.Print CInt("&H" & StrConv(vBuf, vbUnicode))
結果:424

0x8000 より大きい場合は負の数になるので、正の数として扱う場合は

Debug.Print CLng("&HFFFF")
結果:65535

とします。

[ツリー表示へ]