#author("2022-09-01T09:50:45+08:00","default:Admin","Admin")
#author("2022-09-01T09:55:44+08:00","default:Admin","Admin")
[[CSharp]]

#contents

*Byte[]型のテキストデータをStringとして読み出す [#k27567ba]

#codeprettify{{

 Stream sr = new MemoryStream(byteData);
 StreamReader sss = new StreamReader(sr);
 
 string result = sss.ReadToEnd();

}}

* 适用于嵌入式开发 [#w0e7765c]

** 将十六进制的字符串转换成byte数值 [#z05e40fe]
** 将16进制的字符串转换成byte数值 [#z05e40fe]

下面三种方法都可以
下面三种方法都可以,得到16进制的55,visualStudio 查看值因为显示10进制,会显示为 85 (16进制55 = 10进制85)

 Convert.ToByte(s, 16)
 Convert.ToByte("55", 16)
 Convert.ToByte("0x55",16);
 Convert.ToInt16("0x55",16)

** 将16进制的值转为字符串 [#aafc30b2]

 UInt16 wCrc = 0x1234;
 wCrc.ToString("X2") //输出字符串“1234”
* 文字列 [#ma818c4c]

** 文字列をバイナリデータへ変換する。 [#r2de1fb8]

#codeprettify{{
 int intNum = 100;
 int offset = 0;
   
 byte[] sendData = new byte[1024]; // データ送信領域
 string Send_Data_Edit = "test";
 byte[] byte_data1 = Encoding.UTF8.GetBytes(Send_Data_Edit);
 byte_data1.CopyTo(sendData,0);
 offset = byte_data1.Length;
}}

** バイナリデータを文字列へ変換する。 [#gb3c69c7]

#codeprettify{{
 byte[] byte_data2 = BitConverter.GetBytes(intNum);
 byte_data2.CopyTo(sendData,offset);
 
 Console.WriteLine(Encoding.ASCII.GetString(sendData)); で下記の結果が出ます。
 //74-65-73-74-64-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
}}

#hr();
コメント:
#comment_kcaptcha

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS