1.将字符串转为字节数组 :
做上位机时有时候会用到从textbox中取出字符串转换为字节数组,例如将0055转换成0x00、0x55:
private static byte[] StringToByte(string str)
{
if (str.Length % 2 != 0)
{
str = str + "0"; //如果是奇数,后面直接补0
}
byte[] temp = new byte[str.Length / 2];
for (int i = 0; i < temp.Length; i++)
{
temp[i] = Convert.ToByte(str.Substring(i * 2, 2), 16);
}
return temp;
}
2.将字节数组转换为字符串:
有时也需要将字节数组转换为字符串,在比较长的字节数组时使用StringBuider可以减少内存使用
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
byte[] data = { 0x00, 0x55, 0x03, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00 };
string str = ConverToString(data);
Console.WriteLine("转换后" + ": " + str);
Console.ReadKey();
}
private static string ConverToString(byte[] data)
{
string str;
StringBuilder stb = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
if ((int)data[i] > 15)
{
stb.Append(Convert.ToString(data[i], 16).ToUpper()); //添加字符串
}
else //如果是小于0F需要加个零
{
stb.Append("0" + Convert.ToString(data[i], 16).ToUpper());
}
}
str = stb.ToString();
return str;
}
}
}
运行结果:达到了目的:)