#編程基礎##我要上頭條#
一、字符串轉換為16進制字節數組的步驟1、将字符串按每兩個字符拆分并插入逗号為分隔符;2、将拆分後的字符串分離為字符串數組;3、将字符串數組轉換成字節數組并檢測字符是否合法;4、将合法轉換後的字節數組輸出;
二、将16進制數字節數組轉換為字符串1、确定是否需要在字節之間插入空格或其他特殊符号;2、将字節數據轉換為字符;3、将轉換後的字符串連接起來;4、将連接後的字符串輸出;
三、代碼
//字符串轉換為16進制字節數組
private byte[] TranslateStringToHexArray(string AsciiString)
{
int cnt = 0;
string inputAsciiArray= "";
//1、将字符串按每兩個字符拆分并插入逗号為分隔符
for (int i = 0; i < AsciiString.Length; i )
{
char temp = AsciiString[i];
if(temp!=' ')
{
inputAsciiArray = temp;
cnt ;
if (cnt >= 2)
{
cnt = 0;
inputAsciiArray = ",";
}
}
}
//2、将拆分後的字符串分離為字符串數組
string[] bStringArray = inputAsciiArray.Split(new char[] { ',', ' ' });
cnt=0;
for (int i = 0; i < bStringArray.Length; i )
{
if (bStringArray[i].Trim() != "") cnt ;
}
byte[] bArray1=new byte[cnt];
cnt = 0;
//3、将字符串數組轉換成字節數組并檢測字符是否合法
for (int i = 0; i < bStringArray.Length; i )
{
if (bStringArray[i].Trim() != "")
{
try
{
bArray1[i] = Convert.ToByte(bStringArray[i].Trim(), 16);
cnt ;
}
catch (Exception E) //發生錯誤時提示非法字符
{
//string ErrMsg = " " bStringArray[i] " " E.Message;
string ErrMsg = " 第 " (i*2 1).ToString() " 個字符 " bStringArray[i] " 非法 \r\n" E.ToString();
MessageBox.Show(ErrMsg, "提示");
break;
}
}
}
//4、将合法轉換後的字節數組輸出
byte[] bArray2 = new byte[cnt];
for (int i = 0; i < cnt; i )
{
bArray2[i]=bArray1[i];
}
return bArray2;
}
//字節數組轉換為字符串
private string TranslateHexArrayToString(byte[] InputByteArray,bool AddBlankFlag)
{
string HexString = "";
if (AddBlankFlag == true) //确定是否需要插入特殊符号
{
for (int i = 0; i < InputByteArray.Length; i )
{
HexString = InputByteArray[i].ToString("X2") " "; //字節數據轉換為字符(并插入空格)
}
}
else //字符串終字節間不插入空格
{
for (int i = 0; i < InputByteArray.Length; i )
{
HexString = InputByteArray[i].ToString("X2"); //字節數據轉換為字符
}
}
return HexString;
}
,