- 締切済み
バイナリーデータを16進数に表示したい
バッファーにパックされたデータが入ってきます。 そのデータを1バイトずつHEXで表示したいのですが VB.NETでプログラミングしているのですが苦戦しています。 H01,H10,H20...等はしたコーディングで表示できるのですが HC5,HCA,E0等の上位4ビットが大きいと全て3Fとなって期待した表示ができません。 メモリーダンプして1バイト毎に16進数(0~F)で表示したいのと同様で、1バイトを変換しないでそのままHEX表示したいです。 下はうまく動かないサンプルです。開発言語はVB.NETです。 ------------------------------------ InBuffer = _Rfid.ReadExisting() hexData = "" For i = 0 To Len(InBuffer) - 1 hexData = hexData & Hex(Asc(Mid(inData, i + 1, 1))).PadLeft(2, "0"c) Next ----------------------------- どなたか方法をご教示ください。 宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- himajin100000
- ベストアンサー率54% (1660/3060)
SerialPortクラス使った事ないから自信ないけれども。 http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.readexisting.aspx 戻り値はStringでいいのか? http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.encoding.aspx Stringで正しいとしてEncodingは正しいのか? System.Text.Encoding.GetEncodingメソッドの EncoderFallbackやDecoderFallbackはちゃんとしているか? =============== http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.readbyte.aspx http://msdn.microsoft.com/en-us/library/ms143549.aspx もし、StringでなければReadByte()やRead(Byte[],Int32)メソッドだよね? http://msdn.microsoft.com/en-us/library/system.bitconverter.getbytes.aspx http://msdn.microsoft.com/en-us/library/system.bitconverter.tostring.aspx ReadByte()を使うなら、BitConverterクラスのgetbytesメソッドから ToStringメソッドでいけるかな。