教えていただいたのでメモ
インテルHEXファイルは文字列で16進表記されています。
例)
:1001000043004865617020616E6420737461636BA5
これを
0x10,0x01,0x00...
とバイナリに変換したいのをFBへ投稿したら@furuya02さんがおしえてくださいました。
ushort n16 = Convert.ToUInt16("0xabcd", 16); byte[] bytes = BitConverter.GetBytes(i);
無事bytesに0xab,0xcdが入るようになりました。
それを聞いてから
byte n8 = Convert.ToByte("0xab", 16);
でも行けるかなと思って作ってみました。
これを利用して、
string s = "1001000043004865617020616E6420737461636BA5";
を変換するには、
int i,j; string s = "1001000043004865617020616E6420737461636BA5"; len = s.Length / 2; byte[] num16 = new byte[len]; j = 0; for ( i = 0; i < len; i++ ) { num16[i] = Convert.ToByte(s.Substring(j, 2), 16); j += 2; }
一気に変換する方法があるのかもしれませんが、ちょっと見つけられなかったので
作ってみました。