- PR -

16進FFFF形式をバイト配列に代入できない

1
投稿者投稿内容
ポテチ
ベテラン
会議室デビュー日: 2003/03/28
投稿数: 69
投稿日時: 2004-10-07 19:22
こんにちは
今まで
Dim b(1) As Byte
b(0) = &H4S
b(1) = &H2DS
とバイト型の変数にコードから直接代入していたのを
4桁の16進文字列を"042D"という形で受け取ってバイト型に変換しようと思ったのですが、試行錯誤して混乱状態です。

Convert.ToInt32やBitConverter.GetBytesを使うのでは?と思ったのですが、バイト型に変換が理解できてなく難しいです。教えてください。。

えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2004-10-07 20:58
Val 関数のヘルプには以下のようなサンプルがあります。
 次のコードでは、Val 関数は 16 進数の値を 10 進数の -1 にして返します。
 Val("&HFFFF")

b(0) = Val("&H04")
b(1) = Val("&H2D")
でいいのではないでしょうか。

もちろん実装する時には string 変数に "&H04" を入れればいいと思います。

_________________
えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12
えムナウのプログラミングのページ Blog1 Blog2
ポテチ
ベテラン
会議室デビュー日: 2003/03/28
投稿数: 69
投稿日時: 2004-10-09 07:29
受取る文字列が区切りなしのバイトコードなので一気にバイト配列に代入させることはできないのですね。
SUBSTRINGで区切って1バイトずつ区切ってから、数値に変換してあげてバイト型に代入しました。

i=ToInt32("04",16)
b(0) = CByte(i)

引用:

えムナウさんの書き込み (2004-10-07 20:58) より:
Val 関数のヘルプには以下のようなサンプルがあります。
 次のコードでは、Val 関数は 16 進数の値を 10 進数の -1 にして返します。
 Val("&HFFFF")

b(0) = Val("&H04")
b(1) = Val("&H2D")
でいいのではないでしょうか。

もちろん実装する時には string 変数に "&H04" を入れればいいと思います。



1

スキルアップ/キャリアアップ(JOB@IT)